Sql server 在查询中连接变量-SQL Server 2008
我的问题很基本 我正在创建一个存储过程,并将其设置为以下变量:Sql server 在查询中连接变量-SQL Server 2008,sql-server,concatenation,Sql Server,Concatenation,我的问题很基本 我正在创建一个存储过程,并将其设置为以下变量: @ConcatenarClausulaWhere 在过程执行期间,将多个条件串联在此变量中,以在其中插入: SELECT ID FROM TABLE1 WHERE indStatus = 'True' AND (Description LIKE '%' + @ STRING + '%') 我的意图是这样做: SELECT ID FROM TABLE1 The WHERE indStatus = 'True' AND (Descr
@ConcatenarClausulaWhere
在过程执行期间,将多个条件串联在此变量中,以在其中插入:
SELECT ID
FROM TABLE1
WHERE indStatus = 'True'
AND (Description LIKE '%' + @ STRING + '%')
我的意图是这样做:
SELECT ID
FROM TABLE1 The
WHERE indStatus = 'True'
AND (Description LIKE '%' + @ STRING + '%') + @ ConcatenarClausulaWhere
但是,这是不可能的。为什么?
我使用的是SQL Server 2008您需要动态SQL将
WHERE
子句附加到查询中。SELECT
语句不仅仅是一个字符串。在这里,您还需要非常小心SQL注入。如何验证哪些用户正在输入where子句参数
DECLARE @sql NVARCHAR(MAX) = N'SELECT ID FROM dbo.TABLE1
WHERE indStatus = ''True'' AND (Description LIKE @String)'
+ @ConcatenarClausulaWhere;
EXEC sp_executesql @sql, N'@String NVARCHAR(MAX)', N'%' + @STRING + '%';
您需要动态SQL将
WHERE
子句附加到查询中。SELECT
语句不仅仅是一个字符串。在这里,您还需要非常小心SQL注入。如何验证哪些用户正在输入where子句参数
DECLARE @sql NVARCHAR(MAX) = N'SELECT ID FROM dbo.TABLE1
WHERE indStatus = ''True'' AND (Description LIKE @String)'
+ @ConcatenarClausulaWhere;
EXEC sp_executesql @sql, N'@String NVARCHAR(MAX)', N'%' + @STRING + '%';