SQL Query,Where Not Exist不起作用

时间:2012-02-14 14:36:22

标签: c# asp.net .net sql sql-server

我写了以下查询以查看是否存在行,如果Row不存在则更新else则不执行任何操作。

我的代码:s

UPDATE [Computer] SET [ComputerTag] = @ComputerTag, [CustID] = @CustID, 
[PcModel] = @PcModel, [ServicetagNo] = @ServicetagNo,                            
WHERE [ComputerID] = @ComputerID
AND NOT EXIST ( SELECT [ComputerTag] FROM [Computer] 
WHERE [ComputerTag] = @ComputerTag)

但它显示错误“函数参数列表中的错误:'SELECT'无法识别。 函数参数列表出错:'EXIST'无法识别“。我该如何解决这个问题?

更新

Thanx为您的答案,但现在它显示了不同类型的错误“不支持复合语句SQL构造或语句”。那是为什么?

5 个答案:

答案 0 :(得分:8)

@ServicetagNo之后的查询中有一个额外的逗号。

答案 1 :(得分:2)

  1. 第一个WHERE
  2. 之前的行末尾的额外逗号
  3. 在NOT EXISTS(@Lamak)上错过了'S'
  4. 它应该是这样的:

    UPDATE [Computer] SET [ComputerTag] = @ComputerTag, [CustID] = @CustID, 
    [PcModel] = @PcModel, [ServicetagNo] = @ServicetagNo                       
    WHERE [ComputerID] = @ComputerID
    AND NOT EXISTS ( SELECT [ComputerTag] FROM [Computer] 
    WHERE [ComputerTag] = @ComputerTag)
    

答案 2 :(得分:2)

除了额外的逗号之外,你应该在WHERE子句中替换 EXISTS 的EXIST

答案 3 :(得分:2)

在EXISTS关键字中缺少'S'。

答案 4 :(得分:2)

试试这个:

UPDATE [Computer] SET [ComputerTag] = @ComputerTag, [CustID] = @CustID, 
[PcModel] = @PcModel, [ServicetagNo] = @ServicetagNo                       
WHERE [ComputerID] = @ComputerID
AND NOT EXISTS ( SELECT [ComputerTag] FROM [Computer] 
WHERE [ComputerTag] = @ComputerTag)