试试
set @sqltext = 'insert into @tt([ID]) select a.[ID] from [tblname1] as a inner join [tblname2] as b on b.[tid] = a.[ID]'
set @sqltext = 'insert into @tt([ID]) select a.[ID] from [tblname1] as a inner join [tblname2] as b on b.[tid] = a.[ID]'
这个方法在创建存储过程时不会有错,但执行时会提示"必须声明变量@tt"另外,我上面声明的@tt和@sqltext中的@t应为一致,写错了的。
@keywd varchar(100), --关键词
@flag varchar(200) --标识,如:1,2,3,6,7
As
Declare @sqltext varchar(5000)
if @keywd <> '' select @keywd = '%' + @keywd + '%'
set @sqltext = 'Declare @t table ([N] int identity(1,1) not null,[ID] int)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