使用Query(文本)更新Table中的列

时间:2013-08-30 21:22:03

标签: sql-server sql-server-2008

我在数据库中有一个表,其中包含列中的查询语句。我需要更新这个。有什么方法可以更新这似乎是给我一个错误:

UPDATE Items
SET Query = 'SELECT isnull((sum(OrigDocAmt) ),0) amount from AP where Acct in (1234) and Status='O' and Doc in ('CK') {SLLocCode}'
WHERE ID='111'

它给了我一个错误,因为它将'O'视为一个单独的字符串。有没有办法可以像python“What is up”那样做。 不确定为什么这样设置,但我的前任是这样做的。请帮忙。

3 个答案:

答案 0 :(得分:2)

您需要在每个文字值

周围使用2个单引号('')
'SELECT isnull((sum(OrigDocAmt) ),0) amount from AP where Acct in (1234) and Status=''O'' and Doc in (''CK'') {SLLocCode}'

答案 1 :(得分:0)

您需要转义查询字符串中的单引号。在SQL Server中,您只需将单引号加倍:

UPDATE Items
    SET Query = 'SELECT isnull((sum(OrigDocAmt) ),0) amount from AP where Acct in (1234) and Status=''O'' and Doc in (''CK'') {SLLocCode}'
    WHERE ID = '111';

答案 2 :(得分:0)

您需要在查询中转义'(单引号)。这可以通过简单地加倍来完成。

UPDATE Items
SET Query = 'SELECT isnull((sum(OrigDocAmt) ),0) amount 
from AP where Acct in (1234) and Status=''O'' and Doc in (''CK'') {SLLocCode}''
WHERE ID=''111';