必须声明标量变量@Name

时间:2017-10-03 16:01:49

标签: sql-server

我是论坛的新手,通常可以通过查看其他人的帖子找到问题的答案,但我似乎正在努力解决这个问题。

SELECT 
    PageId, SubjectLink 
FROM 
    dbo.a_training_page 
WHERE 
    (NOT EXISTS (SELECT PageId, Name 
                 FROM dbo.a_training 
                 WHERE (dbo.a_training_page.PageId = dbo.a_training.PageId) 
                   AND (Name = @Name)))

我收到错误:

  

必须声明标量变量@Name

感谢任何帮助

1 个答案:

答案 0 :(得分:0)

正如错误消息非常清楚地表明 - 在使用它之前,必须在T-SQL中声明任何变量(带有前导@) - 或者只是在T-SQL代码中,或者作为存储过程或函数的参数。

试试这个(并在WHERE子句中丢失所有那些不必要的括号中的一小部分):

DECLARE @Name VARCHAR(100) = 'Brian';

SELECT 
    PageId, SubjectLink 
FROM 
    dbo.a_training_page 
WHERE 
    NOT EXISTS (SELECT *
                FROM dbo.a_training 
                WHERE dbo.a_training_page.PageId = dbo.a_training.PageId
                  AND Name = @Name)