2012-07-03 24 views
0

我已经成功地使用类似以下内容的查询,但是我无法用'变量'进行更新。这可能吗?这种抱怨带参数的TSQL更新公共查询

'附近有语法错误设定stuf_rec.stat = “A”

DECLARE @stuf_no varchar(6) 
set @stuf_no = 267 
DECLARE @sql varchar (2000) 
set @sql = 
'UPDATE OPENQUERY(train,''select stat from stuf_rec 
where stuf_no = '+ @stuf_no + ''')'' set stuf_rec.stat = ' + '"A"' + ' 
where stuf_rec.stuf_no = ' + @stuf_no + ''';' 

谢谢..

回答

0

这是否工作吧?或者价值是否必须有双引号?

DECLARE @stuf_no varchar(6) 
set @stuf_no = '267' 
DECLARE @sql varchar (2000) 

set @sql =  
'UPDATE OPENQUERY(train,''select stat from stuf_rec  
where stuf_no = '+ @stuf_no + ''') set stuf_rec.stat = ''A''  
where stuf_rec.stuf_no = ' + @stuf_no + ';' 

@sql的结果如下所示:

UPDATE OPENQUERY(train,'select stat from stuf_rec  
         where stuf_no = 267') 
    set stuf_rec.stat = 'A'  
    where stuf_rec.stuf_no = 267;