临时表和表变量之间的区别如下:
上的操作@table_variables
作为系统事务执行,独立于任何外部用户事务,而等效#temp table
操作将作为用户事务本身的一部分执行。出于这个原因,ROLLBACK
命令将影响 a#temp table
但@table_variable
保持不变。
DECLARE @T TABLE(X INT)
CREATE TABLE #T(X INT)
BEGIN TRAN
INSERT #T
OUTPUT INSERTED.X INTO @T
VALUES(1),(2),(3)
/*Both have 3 rows*/
SELECT * FROM #T
SELECT * FROM @T
ROLLBACK
/*Only table variable now has rows*/
SELECT * FROM #T
SELECT * FROM @T
DROP TABLE #T
谁能告诉我什么时候会实时使用上述应用程序/场景?谁能给出一个实时的例子。谢谢