比较表变量和临时表(三)
bject_id INT;
SELECT @object_id =
(SELECT object_id
FROM tempdb.sys.tables
EXCEPT
SELECT object_id
FROM #test);
INSERT INTO @TransactionTest (ID, SomeCol)
VALUES
(0,'Row1'),
(1,'Row2'),
(1,'Row3');--主健重复
SELECT * FROM @TransactionTest;
SELECT Operation, AllocUnitName, [Begin Time], [End Time]
FROM fn_dblog(NULL, NULL)
where AllocUnitName like '%'+object_Name(@object_id)+'%';
插入第3条记录出错,有删除前两条的动作
6、临时表有两种类型:本地表和全局表。它们在名称、可见性以及可用性上有区别。本地临时表
的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例
断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,
当所有引用该表的用户从 SQL Server 断开连接时被删除。
断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,
当所有引用该表的用户从 SQL Server 断开连接时被删除。
[sql] www.2cto.com
--本地临时表
if OBJECT_ID('Tempdb..#1') is not null
drop table #1
exec('select 1 as ID into #1')
select * from #1
/*
(1 行受影响)
消息 208,级别 16,状态 0,第 4 行
对象名 '#1' 无效。
*/
--全局临时表
if OBJECT_ID('Tempdb..##1') is not null
drop table #1
exec('select 1 as ID into ##1')
select * from ##1
/*
ID
1
*/