程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> mssql資源管理器表修改測試

mssql資源管理器表修改測試

編輯:關於SqlServer

--2008-01-04
--資源管理器表修改測試
--建表test(a,b)
--修改為test(a,c,b)
--服務器sql2000
--客戶端sql2005

--資源管理器修改表profiler跟蹤結果
--1.資源管理器建表
----開頭是亂七八糟的設參數,自動建立一個Table_1的表,保存列之類的,隔離級別等,反正應該是系統自動干的,就不多說了
----保存時表名為test,語句如下:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;BEGIN TRANSACTION

CREATE TABLE dbo.test
 (
 a nchar(10) NULL,
 b nchar(10) NULL
 )  ON [PRIMARY]
 
COMMIT TRANSACTION

--2.資源管理器插入數據
----系統執行的略過
----實質語句如下:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;BEGIN TRANSACTION

exec sp_executesql N''INSERT INTO test(a, b) VALUES (@a, @b)'', N''@a nvarchar(2),@b nvarchar(2)'', @a = N''a1'', @b = N''b1''

COMMIT TRANSACTION

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;BEGIN TRANSACTION

exec sp_executesql N''INSERT INTO test(a, b) VALUES (@a, @b)'', N''@a nvarchar(2),@b nvarchar(2)'', @a = N''a2'', @b = N''b2''

COMMIT TRANSACTION

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;BEGIN TRANSACTION

exec sp_executesql N''INSERT INTO test(a, b) VALUES (@a, @b)'', N''@a nvarchar(2),@b nvarchar(2)'', @a = N''a3'', @b = N''b3''

COMMIT TRANSACTION

--3.資源管理器修改表
----之後在test中插入列,即在a和b中間插入c
----又是一堆系統過程、語句執行,設置參數等,繼續不說,反正我也不太明白
----實質工作如下:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;BEGIN TRANSACTION

CREATE TABLE dbo.Tmp_test
 (
 a nchar(10) NULL,
 c nchar(10) NULL,
 b nchar(10) NULL
 )  ON [PRIMARY]

IF EXISTS(SELECT * FROM dbo.test)
  EXEC(''INSERT INTO dbo.Tmp_test (a, b)
  SELECT a, b FROM dbo.test WITH (HOLDLOCK TABLOCKX)'')
  
DROP TABLE dbo.test

EXECUTE sp_rename N''dbo.Tmp_test'', N''test'', ''OBJECT''

COMMIT TRANSACTION

--結束
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved