透過MSSQL嗅探器跟蹤研究EM內部行為並解決identify列問題
今天有人問到MSSQL表裡的IDENTITY欄位,如何讓它在複製原來資料到該表時,原來資料的IDENTITY欄位不變,而新插入資料時,新插入的資料的IDENTITY依然增長,查了些資料,做了個實驗,最終解決,實驗過程指令碼如下:
use test1
go
drop table t1
drop table t2
go
create table t1(col1 int identity(100,1),col2 char(100))
create table t2(col1 int identity(1,1) not for replication,col2 char(100))
go
insert into t1 values('aaaaa')
insert into t1 values('bbbbbb')
insert into t1 values('cccccc')
go
set identity_insert t2 on
insert into t2(col1) select col1 from t1
go
DBCC CHECKIDENT(t2,RESEED,1)
go
insert into t2('eeeeee')
insert into t2('rrrrrr')
go
select * from t2
go
晚上回家後,發現他針對該問題又提出了疑問,於是就決定對MSSQL的企業管理器中進行該操作進行了跟蹤,主要是t-sql和procedure,結果發現和昨晚幾乎差不多:
CREATE TABLE dbo.Tmp_Table_1
(
c1 int NOT NULL IDENTITY (50, 1000),
c2 char(10) NULL
) ON [PRIMARY]
SET IDENTITY_INSERT dbo.Tmp_Table_1 ON
IF EXISTS(SELECT * FROM dbo.Table_1)
EXEC('INSERT INTO dbo.Tmp_Table_1 (c1, c2)
SELECT c1, c2 FROM dbo.Table_1 WITH (HOLDLOCK TABLOCKX)')
SET IDENTITY_INSERT dbo.Tmp_Table_1 OFF
DROP TABLE dbo.Table_1
EXECUTE sp_rename N'dbo.Tmp_Table_1', N'Table_1', 'OBJECT'
最後,他又提出瞭如果原表有約束和二進位制資料的問題,那也只能是一步步實現了,比較麻煩,但MSSQL的EM的思路肯定是這麼實現的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8484829/viewspace-2121624/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- TCP流嗅探和連線跟蹤工具tcpickTCP
- 使用emca命令列配置EM並通過瀏覽器訪問EM示例命令列瀏覽器
- oracle跟蹤常用內部事件號Oracle事件
- python滲透測試入門——流量嗅探器Python
- 嗅探器(割點)
- HttpOnly 隱私嗅探器HTTP
- 透過Treeset解決隨機數排序問題隨機排序
- 如何透過Canonical標籤解決重複內容收錄問題?
- 雲伺服器解決MSSQL 2005 佔用記憶體過大問題伺服器SQL記憶體
- jivejdon程式碼跟蹤問題
- 一個ssh無法遠端登入的問題跟蹤解決
- 關於c#實現影音嗅探的問題C#
- 密碼學系列之:內容嗅探密碼學
- 如何透過CRM解決公司業績下滑的問題
- Oracle 10.2.0.5 EM 啟動BUG問題解決Oracle
- 【SQL_TRACE】解決普通使用者無法執行SQL_TRACE跟蹤其他會話問題SQL會話
- session跟蹤失效的問題和原因Session
- 在CSS中解決內容過長的問題CSS
- 【TRACE】如果通過10046跟蹤資料庫效能問題資料庫
- 手勢檢測跟蹤解決方案
- 做一個位元組碼追蹤器,從內部理解 Python 的執行過程Python
- 結合EM快速解決複雜的配置問題
- oracle 10g em 亂碼問題解決方法Oracle 10g
- 探尋 JavaScript 精度問題以及解決方案JavaScript
- 上次jboss連mssql的問題已解決,這次是MDB的問題SQL
- ActionView - 更好用的問題需求跟蹤工具View
- 區域網密碼嗅探器 官網密碼
- 怎麼透過mailx向內部郵件伺服器傳送郵件?(疑問板)AI伺服器
- 透過 Pulsar 原始碼徹底解決重複消費問題原始碼
- 透過修改DNS配置解決網站登陸異常問題DNS網站
- 【slam】解決ubuntu無法透過拼音輸入中文的問題SLAMUbuntu
- Linux 命令列下嗅探 HTTP 流量的工具:httpryLinux命令列HTTP
- 如何在Linux上從命令列嗅探HTTP流量Linux命令列HTTP
- 一次對連線過程進行跟蹤處理連線故障問題的案例
- 解決 Github 國內訪問問題Github
- 解決oracle10g EM主機驗證問題Oracle
- oracle10g中EM的有關問題解決Oracle
- 通過sql跟蹤解決ORA-00942錯誤一例SQL