我想知道我是否可以将我的sql查询的某些部分定义为字符串。
我处理了下面的代码,但我无法将预定义的字符串部分连接到现有查询。
实际上@sirketid
,@uzman
,@basvurukodu
参数效果很好,但@ORA_BASVURU_KESIN_KOSUL
参数导致问题。
我认为因为它有一些像 和 这样的sql-spesific表达式,所以它比用于比较或分配的简单变量(例如@sirket_id
)处理得差。
它不会抛出任何错误消息,代码根本不会执行操作。
SET @ORA_BASVURU_KESIN_KOSUL = 'and akftif = 1';
UPDATE basvuru
SET sirket = @sirketid,
talep_gorevlendirme_rapor = 'G',
birimi = 'SS',
uzman = @uzman,
WHERE
kod = @basvurukodu + ' ' + @ORA_BASVURU_KESIN_KOSUL;
我可以查询这样的查询部分,如果是,怎么做?
由于
答案 0 :(得分:1)
您的查询应该像:
EXEC
当然你也必须声明其他变量:
SET @ORA_BASVURU_KESIN_KOSUL = 'and akftif = 1';
DECLARE @MyExecSQL varchar(2000) =
'UPDATE basvuru
SET sirket = @sirketid
,talep_gorevlendirme_rapor = ''G''
,birimi = ''SS''
,uzman = ' + @uzman +
' WHERE kod = ' + @basvurukodu +
' ' + @ORA_BASVURU_KESIN_KOSUL + ''
;
EXEC @MyExecSQL