sql server语言 - MS sql -语法和标量错误在哪里



我整个上午都在为这堵砖墙伤脑筋。这是我收到的错误的一个非常简化的例子。我正在使用SSMS。

DECLARE @myid nvarchar(10) = '5'
DECLARE @sql nvarchar(2048) = 'SELECT id FROM Applications A WHERE A.id=@myid'
EXECUTE sp_executesql @sql, @myid=@myid

错误:

Msg 102,第15层,状态1,第1行,'5'附近语法错误。137年味精,第15层,状态2,第1行必须声明标量变量"@myid"

为什么我得到语法和标量错误?@myid已经定义了,对吧?

sp_executesql需要接收您所缺少的参数定义。因此,在您的情况下,您应该使用:

DECLARE @myid nvarchar(10) = '5';
DECLARE @sql nvarchar(2048) = 'SELECT id FROM Applications A WHERE A.id=@myid';
EXECUTE sp_executesql @sql, N'@myid nvarchar(10)', @myid=@myid;

最新更新