我在想我是否可以将我的sql查询的某些部分定义为字符串。SQL Server存储过程concat字符串作为查询
我在下面的代码工作,但我无法设法将预定义的字符串部分连接到现有的查询。
其实@sirketid
,@uzman
,@basvurukodu
params工作正常,但是@ORA_BASVURU_KESIN_KOSUL
param正在引发问题。
我想,因为它具有一些SQL-spesific表达像和,则diffrently处理比用于比较或分配诸如@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;
我可以像这样连接查询部件,如果是这样,怎么办?
感谢
您将需要动态sql。首先连接你想执行的整个SQL,最后用EXEC执行SQL –
你不能像这样连接新的条件。要做到这一点,你必须使查询动态 –
[您的浏览背景材料](http://sommarskog.se/dyn-search.html),以及[这](http://sommarskog.se/dynamic_sql。 HTML)更一般的动态SQL。关于这个话题有很多要说的。由于涉及注入的风险,传入任意SQL作为参数几乎不是一个好方法。 –