我在写存储过程。我有一个字符串,其中包含一个SQL查询。例如:SQL服务器 - 从执行的查询字符串在临时表中动态填充结果
DECLARE @sql nvarchar(max)
SET @sql = (N'SELECT pkOrderID FROM Orders')
(只是要注意:这不是select语句看起来这只是我的意思为例)然后,我想执行的字符串,并把结果在一个临时表例如#tempTable。我知道EXEC(@sql)存在,但不知道在这种情况下它是否会对我有好处。另一个问题是,我不知道返回的@sql中所有列的名称,所以临时表#tempTable需要基于@sql的返回而创建。谢谢你的帮助。
雅我刚碰到超出范围问题。让我试一试 – frontin 2014-10-27 00:58:03
当我尝试使用DROP TABLE ## tempTable在sp的末尾删除表时。它说不能下降,因为它不存在或我没有权限。我猜它认为它不存在,但它的确如此,因为它正确地执行了字符串语句...... – frontin 2014-10-27 01:26:04
创建表的会话结束时,全局临时表(## table)会自动删除,并且每当任何其他TSQL引用该表已完成。 – JohnS 2014-10-27 01:58:09