當資源管理器在修改數據表格時會發生些什麼?

MS SqlServer的客戶端工具中,查詢分析器是只能把新字段加到最後 , 是不能加在已經存在的任意字段之前的 .資源管理器可以 , 但是資源管理器又是怎麼作到的呢 ? 難道是資源管理器調用了什麼隱含API?
在我使用Embarcadeo Rapid Sql V7.5的過程中, 發現了加字段的秘密 :

[color=FF0000]第一步 : USE 數據庫名[/Color]
go

[color=FF0000]第二步 : 更名(改掉約束和表格名稱)[/Color]
改約束時 , 新約束名在前 , 舊約束名在後
改表格名稱時 , 舊名在前 , 新名在後
EXEC sp_rename 'dbo.DF__dbBarter__dbRec___5090EFD7', 'DF__dbBart_10302006072215001',OBJECT
go
以下還有挼若干個EXEC sp_rename和Go, 這個表格有多少個字段有Default Value, 那麼就有多少行
...
EXEC sp_rename 'dbo.dbBarter','dbBarter_10302006073618000',OBJECT


[color=FF0000]第三步 : 重新創建表格[/Color]
CREATE TABLE dbo.dbBarter 
(
    baf_SID      int           IDENTITY,
    ....
    dbRec_Show   bit   CONSTRAINT DF__dbBarter__dbRec___5090EFD7 DEFAULT 0 NULL
)
go

[color=FF0000]第四步 :  將舊表格的數據抄過來[/Color]
SET IDENTITY_INSERT dbo.dbBarter ON
go
SET IDENTITY_INSERT dbo.dbBarter ON
go
INSERT INTO dbo.dbBarter(
                         baf_SID,
             ...
                         dbRec_Show
                        )
                  SELECT 
                         baf_SID,
                         NULL,
             ...
                         dbRec_Show
                    FROM dbo.dbBarter_10302006072215000 
go
SET IDENTITY_INSERT dbo.dbBarter OFF
go

由此可見 , 用代碼也可以實現字段的任意穿插於表格中 . 只是比教煩瑣 , 因此資源管理器作了很好的封裝 , 讓大家用起來很順手