【发布时间】:2012-03-31 06:51:54
【问题描述】:
如何将多个值传递给 SQL Server 2008 中的存储过程?
我的桌子是这样的:
id Tag platform
1 #class1,#class2 CS
2 #class1 PS
3 #class2 CS
存储过程:
ALTER PROCEDURE [dbo].[usp_Get]-- 1,"'#class1,#class2'"
@Appid INT,
@TagList NVARCHAR (MAX)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @tags varchar(MAX)
set @tags = @TagList
create table #t (tag varchar(MAX))
set @tags = 'insert #t select ' + replace(@tags, ',', ' union select ')
exec(@tags)
Select
id FROM dbo.List WHERE ((appid=@Appid)) AND ((Tags IN(select tag from #t)
END
如果我查询
[dbo].[usp_Get] 1,"'#class1'"
我只得到第二行。但是第一行也有#class1...
请告诉我........
【问题讨论】:
标签: sql-server-2008