下降临时表在一个存储过程,如果我需要在存储过程
DECLARE @tmpClientTable TABLE
我会需要再次降了吗?或者它会在下次存储proc运行时被覆盖。
如果其他人也运行存储的proc,会发生什么情况......会不会是一个单独的表?
谢谢,
下降临时表在一个存储过程,如果我需要在存储过程
DECLARE @tmpClientTable TABLE
我会需要再次降了吗?或者它会在下次存储proc运行时被覆盖。
如果其他人也运行存储的proc,会发生什么情况......会不会是一个单独的表?
谢谢,
你不需要(并且实际上不能)明确地删除它。
创建和删除表变量会自动处理。
在存储过程中,表变量可以缓存而不是重复被删除和创建。有关更多信息,请参阅Temporary Table Caching Explained。
并发用户将得到一个单独的执行上下文和单独的表变量实例。
这是一个表变量。它不能/不需要被丢弃。
它在存储过程中具有本地范围,这意味着运行相同的PROC
的任何并发连接将彼此隔离。
这是#TEMP表语法的(一个版本)。
IF OBJECT_ID('tempdb..#TempCustomer') IS NOT NULL
begin
drop table #TempCustomer
end
CREATE TABLE #TempCustomer
(
[CustomerID] nchar(5)
, [CompanyName] nvarchar(40)
)
IF OBJECT_ID('tempdb..#TempCustomer') IS NOT NULL
begin
drop table #TempCustomer
end
您不能删除@variable表。
表变量在执行后立即下降。
例如:
DECLARE @Table TABLE(
name varchar(30) NOT NULL,
location varchar(30) NOT NULL
);
INSERT INTO @Table VALUES('John', 'Neveda')
SELECT * FROM @Table
go
执行以上后,尝试这种在同一个会话:
DECLARE @Table TABLE(
name varchar(30) NOT NULL,
location varchar(30) NOT NULL ,
locationB varchar(30) NOT NULL
);
INSERT INTO @Table VALUES('John', 'Neveda', 'LasVegas')
SELECT * FROM @Table
凡为临时表,直到会话关闭后不会被删除。 LocalTempTables Vs GlobalTempTables
http://dba.stackexchange.com/questions/16385/whats-the-difference-between-a-temp-table-and-table-variable-in-sql-server –