查看从存储过程创建的临时表

Vin*_*nod 5 sql sql-server stored-procedures

我在SQL 2005中有一个存储过程.存储过程实际上是在SP的开头创建临时表并在最后删除它.我现在在VS 2005中调试SP.在SP之间,我想知道临时表中的内容.任何人都可以在运行时帮助查看临时表的内容.

谢谢Vinod T.

Ily*_*tov 14

有几种临时表,我认为你可以使用在SP使用它之后没有丢弃的表.只要确保你没有两次调用相同的SP,否则你会在尝试创建现有表时遇到错误.或者只是在看到它的内容后删除临时表.所以不要使用表变量(@table)而只是使用#table##table


来自http://arplis.com/temporary-tables-in-microsoft-sql-server/:

本地临时表

  • 本地临时表前缀为单个数字符号(#)作为其名称的第一个字符,如(#table_name).
  • 本地临时表仅在当前会话中可见,或者您可以说它们仅对用户的当前连接可见.当用户断开与Microsoft SQL Server实例的连接时,将删除它们.

全球临时表

  • 全局临时表前缀为双号(##)作为其名称的第一个字符,如(## table_name).
  • 全局临时表对所有会话都可见,或者您可以说任何用户在创建后都可以看到它们.
  • 当引用该表的所有用户与Microsoft SQL Server断开连接时,将删除它们.


Gal*_*ian 7

编辑存储过程以在临时表中临时选择*(可能在另一个表或文件中,或仅在输出窗格中),因为它运行..?

之后您可以将其更改回来.如果您无法使用原始程序,请将其复制并编辑副本.


Fil*_*Vos 5

我构建了一些存储过程,允许您查询在另一个会话中创建的临时表的内容.

请参阅github上的sp_select项目.

exec sp_select 'tempdb..#temp'无论哪个会话,都可以通过运行来显示表的内容.