MS SQL - 语法和标量错误在哪里?

时间:2016-07-04 15:34:09

标签: sql-server variables syntax-error scalar

我整个早上一直在这个砖墙上敲打我的头。这是我收到的错误的一个非常简单的例子。我正在使用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

错误:

  

消息102,级别15,状态1,行1#5'附近的语法不正确。消息137,   等级15,状态2,行1必须声明标量变量" @ myid"。

为什么我会收到语法和标量错误? @myid是定义的,对吧?

1 个答案:

答案 0 :(得分:4)

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;