




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、回滚事务对表变量无效,回滚事务对临时表有效sql SET NOCOUNT ON; DECLARE TestTable TABLE ( RowID INT IDENTITY PRIMARY KEY CLUSTERED, Name VARCHAR(9) NOT NULL UNIQUE, Age TINYINT NULL, rowguid UNIQUEIDENTI
2、FIER NOT NULL DEFAULT(newid(); begin tran INSERT INTO TestTable (Name, Age) VALUES ('Roy', 25),('中国风', 21); rollback tran SELECT 'Insert rows' as Action, * FROM TestTable; /* Action RowID Nam
3、e Age rowguid Insert rows 1 Roy 25 84C4F6CC-3AB3-4D7D-8779-0DCF3414AB61 Insert rows 2 中国风 21 1DB02A77-F20E-4326-A4E4-023CE9F5DEA7 */ go if OBJECT_ID('Tempdb.#TestTable') is not null drop table #TestTable
4、 CREATE TABLE #TestTable ( RowID INT IDENTITY PRIMARY KEY CLUSTERED, Name VARCHAR(9) NOT NULL UNIQUE, Age TINYINT NULL, rowguid UNIQUEIDENTIFIER NOT NULL DEFAULT(newid(); begin tran
5、 INSERT INTO #TestTable (Name,Age) VALUES ('Roy', 25),('中国风', 21); rollback tran SELECT 'Insert rows' as Action,* FROM #TestTable /* 无记录 */ 2、临时表支持用into生成临时表/TRUNCATE清空表/set identity_insert/drop table,表变量不支持
6、60;sql use tempdb go if OBJECT_ID('Tempdb.#TestTable') is not null drop table #TestTable -into select 1 as ID into #TestTable -TRUNCATE TRUNCATE table #TestTable go if OBJECT_ID('Tempdb.#TestTable2')
7、 is not null drop table #TestTable2 Create table #TestTable2(ID int identity,Num int) go set identity_insert #TestTable2 on; insert into #TestTable2(ID,Num) values(1,20) set identity_insert #TestTable2 off; go drop table #TestTable,#TestT
8、able2 3、表变量可以在创建表时定义主健PRIMARY KEY和唯一约束UNIQUE和检查checksql use tempdb go SET NOCOUNT ON; - 记录当前tempdb里的表对象ID if OBJECT_ID('Tempdb.#test') is not null drop table #test SELECT object_id INTO #test F
9、ROM tempdb.sys.tables; GO -创建表变量 DECLARE temp TABLE ( RowID INT NOT NULL, ColA INT NOT NULL check(ColA<10), ColB char(1), ColC char(1), ColD char(1),
10、60; PRIMARY KEY NONCLUSTERED (RowID, ColA), UNIQUE CLUSTERED (ColB, ColC), UNIQUE NONCLUSTERED (ColC, ColD); INSERT INTO temp VALUES (1, 1, 'B', NULL, 'D'); -获取表变量对象的ID DECLARE object
11、_id INT; SELECT object_id = (SELECT object_id FROM tempdb.sys.tables EXCEPT SELECT object_id FROM #test); - 获取表变量的索引名 with IXC as &
12、#160;( SELECT IXC.object_id, IXC.index_id, IXC.index_column_id, IXC.is_descending_key, IXC.is_included_column, column_
13、name = C.name FROM tempdb.sys.index_columns IXC JOIN tempdb.sys.columns C ON IXC.object_id = C.object_id AND IXC.column_id = C.column_id WHERE IXC.object_id = object_id
14、 ) select IX.object_id, index_name = IX.name, index_type_desc = IX.type_desc, IX.is_unique, IX.is_primary_key, &
15、#160; IX.is_unique_constraint, IX.is_disabled, index_columns = STUFF(IXC_COL.index_columns, 1, 2, N'') from tempdb.sys.indexes as IX CROSS APPLY( SELECT index_columns =
16、0;(SELECT N', ' + QUOTENAME(column_name)+ CASE is_descending_key WHEN 1 THEN N'DESC' ELSE N'' END FROM IXC WHERE object_id = IX.object_id AND index_id = IX.index_id AND is_included_column =0 ORDER BY index_column_id FOR XML PATH(''
17、;), ROOT('r'), TYPE).value('/r1','nvarchar(max)') )IXC_COL where IX.object_id= object_id /* object_id index_name index_type_desc is_unique is_primary_key is_unique_constraint is_disabled index_columns
18、 1572200651 UQ_#5DB5E0C_D87C70A35F9E293D CLUSTERED 1 0 1 0 ColB,ColC 1572200651 UQ_#5DB5E0C_287C70A3627A95E8 NONCLUSTERED 1 0 1 0 ColC, ColD 1572200651 PK_#5DB5E0C_A5CBEAB465570
19、293 NONCLUSTERED 1 1 0 0 RowID, ColA */ GO drop table #test 4、临时表名116个字符,表变量支持128个字符 sql -
20、 -
21、0; 10 20 30 40 50 60 70 80 90
22、0; 100 110 120 RowID INT IDENTITY PRIMARY KEY CLUSTERED, ); GO /* 消息 193,级别 15,状态 1,第 2 行 */ declare - &
23、#160;
24、 - 10 20 30 40 50 60 70
25、60; 80 90 100 110 120 RowID INT IDENTITY PRIMARY KEY CLUSTERED); 5、查看表变量的日志变化 CHECKPOINT将当前数据库的全部脏页写入磁盘。“脏页”是已输入缓存区高速缓存且已修改但尚未写入磁盘的数据页。 sql USE tempdb &
26、#160;GO - 截断日志,测试开始1 CHECKPOINT - 记录当前tempdb里的表对象ID if OBJECT_ID('Tempdb.#test') is not null drop table #test SELECT object_id INTO #test FROM tempdb.sys.tables; &
27、#160;go DECLARE TransactionTest TABLE ( ID INT PRIMARY KEY, SomeCol VARCHAR(20) ); -获取表变量对象的ID DECLARE object_id INT; SELECT object_id = (SELECT object_id FROM tempdb.sys.tables &
28、#160; EXCEPT SELECT object_id FROM #test); INSERT INTO TransactionTest (ID, SomeCol) VALUES (0,'Row1'); INSERT INTO TransactionTest (ID, SomeCol) VALUES (1,'Row2'
29、); BEGIN TRANSACTION; INSERT INTO TransactionTest (ID, SomeCol) VALUES (2,'Row3'); ROLLBACK TRANSACTION; SELECT * FROM TransactionTest; SELECT Operation, AllocUnitName, Begin Time, End Time FROM fn_dblog(NULL, NULL)
30、0;where AllocUnitName like '%'+object_Name(object_id)+'%' GO 最后三条记录都是插入记录日志 sql USE tempdb GO - 截断日志,测试开始2 CHECKPOINT - 记录当前tempdb里的表对象ID if OBJECT_ID('Tempdb.#test') is not null
31、; drop table #test SELECT object_id INTO #test FROM tempdb.sys.tables; go DECLARE TransactionTest TABLE ( ID INT PRIMARY KEY, SomeCol VARCHAR(20) ); -获取表变量对象的ID
32、 DECLARE object_id INT; SELECT object_id = (SELECT object_id FROM tempdb.sys.tables EXCEPT SELECT object_id FROM #test);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度体育中心场地合作租赁合同
- 2025版新能源产业设备分包合同范本
- 二零二五年度测量成果质量控制分包合同
- 二零二五年度建筑设备安装工程承包合同范本
- 二零二五年度物流运输居间合同规范模板
- 二零二五年拆除工程环保设施租赁与维护合同
- 2025版国企工司大师傅薪资待遇与技艺创新合同
- 2025电动车零部件定制加工合同范本
- 二零二五年度车辆拍卖与竞买合同模板
- 2025年度国有企业内部审计责任合同模板
- 2021届高考英语887核心词(打印、词频、出处、例句、背诵)
- 高层次人才公寓装修技术标
- JJG 10-2005专用玻璃量器
- GB/T 5907.4-2015消防词汇第4部分:火灾调查
- GB/T 10821-1993农业机械用V带尺寸
- BB/T 0019-2000包装容器方罐与扁圆罐
- 超市生鲜蔬菜培训资料
- 2020浙江高考英语一轮复习课件:专题十二-文章
- 新编物理基础学(上下册)课后习题详细答案 王少杰 顾社主编
- 2022年开封市中医院医护人员招聘笔试试题及答案解析
- 氢气泄露控制表
评论
0/150
提交评论