“sp_executesql”附近的语法不正确
我不明白为什么以下会给我错误。 我认为这与注释掉的部分有关,但@SQL是nvarchar(4000)。
BEGIN
sp_executesql N'SELECT ''td'''
--sp_executesql @SQL, N'@StartDate DateTime, @EndDate DateTime, @End2 DateTime, @Program varchar(4)', @StartDate, @EndDate, @End2, @Program
END
I don't understand why the following is giving me the error. I thought it was related to the commented out section, but @SQL is nvarchar(4000).
BEGIN
sp_executesql N'SELECT ''td'''
--sp_executesql @SQL, N'@StartDate DateTime, @EndDate DateTime, @End2 DateTime, @Program varchar(4)', @StartDate, @EndDate, @End2, @Program
END
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这就是为什么:
当您位于块中时,您不能在没有 exec 的情况下只调用存储过程。
This is why:
You can't just call a stored proc without an exec when you are in a block.
为什么将其包含在 BEGIN ... END 中? 在块外部运行 sp_executesql 将起作用。
您可以选择在 sp_executesql 之前放置 exec。
Why do you have this enclosed in a BEGIN ... END? Running the sp_executesql external the block will work.
Optionally you can put an exec before sp_executesql.
在某些情况下,我也必须使用 master:
On some occasions I had to use master as well: