我一直在运行报告并为此报告创建表格。现在其他用户也在运行这个报告。所以我需要用户能够同时运行存储过程而不用担心覆盖表。我尝试使用一个简单的临时表,但我需要临时表来完成两个“功能”。一个创建表的动态 sql 语句和一个表驱动的动态 sql 语句。
我的主要问题是我希望表驱动的代码能够看到全局临时表变量,但它没有。在仍然使用临时表的同时是否有解决方法?有没有办法一次运行两个动态 sql 语句,以便其他类型的临时表可以工作?
任何正确方向的建议都是有帮助的。谢谢你。
DECLARE @TmpGlobalTable varchar(255) = 'SomeText_' + convert(varchar(36),NEWID())
SELECT @SQL = @SQL +'
SELECT IDENTITY(INT) as idcol, date, Desc As [Description]
INTO [##' + @TmpGlobalTable + ']
FROM dbo.appendix
WHERE RecordStatus = 1
and casestatement from user input
'
print(@sql)
exec(@sql)
Declare @sql1 varchar(max) = ''
SELECT @SQL1 = @SQL1 +'
insert into dbo.'+@table+'
select ''1'', '''+date+''' as Sequence, Description as Description_color, buyer, seller, price, option
from '+@ClientTable+'
where isnull('+Seq+',9999) <= cutoffvalue
group by description , buyer, seller, price, option
'
from
[##' + @TmpGlobalTable + ']
print(@sql1)
exec(@sql1)
EXEC ('DROP TABLE [##' + @TmpGlobalTable + ']')
PRINT 'Dropped Table ' + @TmpGlobalTable