表变量与存储过程的问题
hcflf 2005-06-26 11:21:18 本来问题是想解决如何在存储过程的参数中使用in,查了些资料可以用set 变量=sql语句来解决
但又遇到了insert into 表变量时,出现“必须声明变量‘@t’”的提示,请高手提供些解决的方案或思路,谢谢。
--===========
CREATE PROCEDURE [dbo].[pr_Sel]
@keywd varchar(100), --关键词
@flag varchar(200) --标识,如:1,2,3,6,7
As
Declare @tt table([N] int identity(1,1) not null,[ID] int)
Declare @sqltext varchar(5000)
if @keywd <> '' select @keywd = '%' + @keywd + '%'
set @sqltext = 'insert into '+@t+' select a.[ID] from [tblname1] as a inner join [tblname2] as b on b.[tid] = a.[ID]'
+' where ('''+@keywd+''' = '''' or (b.[tname] like '''+@keywd+''' or b.[pname] like '''+@keywd+'''))'
+' and (a.[flag] in('+@flag+'))'
+' order by a.[ID] desc'
exec(@sqltext)
select @@rowcount
go