MS SQL - 语法和标量错误在哪里?
MS SQL - Where are the syntax and scalar errors?
我整个上午都在为这堵砖墙苦苦思索。这是我收到的错误的一个非常简单的示例。我正在使用 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, Level 15, State 1, Line 1 Incorrect syntax near '5'. Msg 137,
Level 15, State 2, Line 1 Must declare the scalar variable "@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;
我整个上午都在为这堵砖墙苦苦思索。这是我收到的错误的一个非常简单的示例。我正在使用 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, Level 15, State 1, Line 1 Incorrect syntax near '5'. Msg 137, Level 15, State 2, Line 1 Must declare the scalar variable "@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;