create table t(a varchar(20),b int) insert into t select '001',1 union select '002',2 union select '003',3--动态sql测试 declare @s varchar(40),@sql varchar(400) set @s = '001|003' set @sql='select * from t where charindex(a,'''+@s+''')>0' print @sql exec (@sql)--结果 a b -------------------- ----------- 001 1 002 2--存储过程测试 create proc p_t(@s varchar(40)) as begin declare @sql varchar(400) set @sql='select * from t where charindex(a,'''+@s+''')>0' exec (@sql) end exec p_t '001|003' --结果 a b -------------------- ----------- 001 1 002 2(所影响的行数为 2 行)
insert into t select '001',1
union select '002',2
union select '003',3--动态sql测试
declare @s varchar(40),@sql varchar(400)
set @s = '001|003'
set @sql='select * from t where charindex(a,'''+@s+''')>0'
print @sql
exec (@sql)--结果
a b
-------------------- -----------
001 1
002 2--存储过程测试
create proc p_t(@s varchar(40))
as
begin
declare @sql varchar(400)
set @sql='select * from t where charindex(a,'''+@s+''')>0'
exec (@sql)
end
exec p_t '001|003'
--结果
a b
-------------------- -----------
001 1
002 2(所影响的行数为 2 行)