Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server T-SQL从动态SQL插入临时表_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server T-SQL从动态SQL插入临时表

Sql server T-SQL从动态SQL插入临时表,sql-server,sql-server-2008,Sql Server,Sql Server 2008,这在SQL Server 2008上运行,但数据库处于SQL Server 2000兼容模式(我无法更改) 在存储过程的开头创建一个临时表,然后通过动态生成的SQL中的EXEC语句插入。即使临时表(据我所知,应该是)不在执行范围内,这是如何成功执行的,还是在存储过程中执行这些语句时,临时表会被暂时忽略 示例如下: CREATE PROCEDURE myProc (Param1 int....) AS BEGIN Declare @SQL varchar(max) = null Cr

这在SQL Server 2008上运行,但数据库处于SQL Server 2000兼容模式(我无法更改)

在存储过程的开头创建一个临时表,然后通过动态生成的SQL中的
EXEC
语句插入。即使临时表(据我所知,应该是)不在执行范围内,这是如何成功执行的,还是在存储过程中执行这些语句时,临时表会被暂时忽略

示例如下:

CREATE PROCEDURE myProc (Param1 int....)
AS
BEGIN
   Declare @SQL varchar(max) = null

   Create table #tempTable 
   (
       ID int,
       Code1 varchar(255),
       ...
   )

   SET @SQL = 'insert into #tempTable '
              + ...
   EXEC(@SQL)

   Select * from #tempTable
END
任何有助于理解这一点的人都将不胜感激

谢谢

很快: 在外部批处理中创建的临时表可以在动态SQL中访问,但反之亦然

将删除在存储过程中创建的本地临时表 当存储过程完成时自动执行表格可以是 由存储程序执行的任何嵌套存储过程引用 创建表的过程。无法引用该表 调用创建表的存储过程的进程。

很快: 在外部批处理中创建的临时表可以在动态SQL中访问,但反之亦然

将删除在存储过程中创建的本地临时表 当存储过程完成时自动执行表格可以是 由存储程序执行的任何嵌套存储过程引用 创建表的过程。无法引用该表 调用创建表的存储过程的进程。

很快: 在外部批处理中创建的临时表可以在动态SQL中访问,但反之亦然

将删除在存储过程中创建的本地临时表 当存储过程完成时自动执行表格可以是 由存储程序执行的任何嵌套存储过程引用 创建表的过程。无法引用该表 调用创建表的存储过程的进程。

很快: 在外部批处理中创建的临时表可以在动态SQL中访问,但反之亦然

将删除在存储过程中创建的本地临时表 当存储过程完成时自动执行表格可以是 由存储程序执行的任何嵌套存储过程引用 创建表的过程。无法引用该表 调用创建表的存储过程的进程。


临时表具有动态范围,而不是词法范围。临时表具有动态范围,而不是词法范围。临时表具有动态范围,而不是词法范围。临时表具有动态范围,而不是词法范围。