我试图更新基于if else
如何附加SQL字符串在SELECT语句
ALTER PROCEDURE spLocal_GetDetails
@Var1 varchar(255),
@Var2 varchar(255)
As
declare @WhereClause varchar(255)
IF @Var1 = '' and @Var2 = ''
SET @WhereClause='Where T1.Key1='[email protected]
ELSE
SET @WhereClause= 'T1.Key1='[email protected] + ' and someValue'+ @Var2+'
Select *
from [dbo].[Table1] T1
LEFT JOIN [dbo].[Table2] T2 with(nolock) on T1.KEY=T2.KEY
+ @WhereClause
现在我得到的错误存储过程的WHERE子句:
Msg 245, Level 16, State 1, Procedure spLocal_GetDetails, Conversion failed when converting the varchar value 'Where T1.Key1=5' to data type int.
请仔细阅读本文。 http://www.sommarskog.se/dynamic_sql.html – Jeremy
我在下面添加了我的答案。但无论如何,代码并不是很好,应该真正改进。 – Ionic