2012-07-03 2 views
0

다음과 같은 쿼리를 사용하여 성공적으로 쿼리를 수행하지 못했지만 '변수'를 사용하여 쿼리를 수행 할 수 없습니다. 이것이 가능한가? 이TSQL에서 매개 변수로 openquery를 업데이트합니다.

'근처의 구문이 잘못되었습니다'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;