SELECT vs SET,SET不工作但SELECT是,为什么?

时间:2014-07-02 11:24:31

标签: sql-server tsql

我在SQL Server 2012中使用SET和SELECT时遇到了一个问题。

使用以下SQL语句:

SELECT @CellNo= Complainants.CellNo FROM Complainants
         INNER JOIN Complaints
         ON Complainants.ComplainantID = Complaints.Complainant_ID
         WHERE Complaints.ComplaintID = @ComplaintID

它有效;但是当我使用以下声明时:

SET @CellNo= Complainants.CellNo from Complainants
         INNER JOIN Complaints
         ON Complainants.ComplainantID = Complaints.Complainant_ID
         WHERE Complaints.ComplaintID = @ComplaintID

然后它不起作用;报告的错误是:

Error: Incorrect syntax near FROM

为什么会出现此错误?

3 个答案:

答案 0 :(得分:0)

使用以下SET命令格式:

SET @CellNo= (Select Complainants.CellNo from Complainants
         inner join Complaints
         ON Complainants.ComplainantID = Complaints.Complainant_ID
         Where Complaints.ComplaintID = @ComplaintID)

答案 1 :(得分:0)

使用此:

SET @CellNo = (SELECT Complainants.CellNo
               FROM   Complainants INNER JOIN
                      Complaints ON Complainants.ComplainantID = Complaints.Complainant_ID
               WHERE  Complaints.ComplaintID = @ComplaintID)

答案 2 :(得分:0)

这不是一个问题,这是它应该如何工作。使用SET设置变量值,然后使用SELECT从表中选择数据。如果需要从列中读取数据,则必须使用SELECT。使用带有subselect组合的set可以使用,但会增加额外的代码。