close

 

引述

SQL Server 2005 插入欄位
新增欄位用
ALTER TABLE tablename ADD columnname type
基本上就可以了,不過欄位只能加在最後方,前陣子有個需求要把一台遠端的 SQL Server 2005 在某個表格新增一個欄位。這台因為安全管制的原因,在安管內,所以遠端不能直接存取,但是有 SQL 語法執行器可以做處理,所以只要用 SQL 語法去跑就可以了。
 
本來想 ANSI SQL92 沒有,不過應該 T-SQL 內有吧?找線上手冊半天沒看到,上網查也都沒有,最後不得不使出終極利器來查找 SQL 語法。
1. 先從開始工具列中找出 SQL Server Profiler 啟動,並設好追蹤。
2. 再用 SQL Server Management Studio 手動編輯一個表格,插入欄位。
3. 將 SQL Server Profiler 追蹤停用,再檢查剛剛的 SQL 語法紀錄。
 
哇勒,還真的沒有。SQL Server Management Studio 因為沒有插入欄位指令,所以只能透過建立暫存表格來達成。是分四個步驟做插入欄位的:
1. 建立暫存表格:
CREATE TABLE dbo.Tmp_tablename (所有的欄位定義, 包含插入在中間的欄位) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
 
2. 匯入資料到暫存表格:
INSERT INTO dbo.Tmp_tablename (原先的所有欄位) SELECT 原先的所有欄位 FROM dbo.tablename WITH (HOLDLOCK TABLOCKX)
 
3. 刪除原先表格:
DROP TABLE dbo.tablename
 
4. 暫存表格更名為原先表格名:
EXECUTE sp_rename N'dbo.Tmp_tablename', N'tablename', 'OBJECT'

其中,所有的欄位定義自己打實在太鳥了,所以先在本機做原先的表格,再重做一次追蹤,直接剪貼 4 個 SQL 語法,送到遠端去,最後經過遠端檢查,正確無誤的插入欄位。
 
很少從表格定義用 SQL 產生,沒想到插入欄位會比增加欄位麻煩這麼多。
arrow
arrow
    全站熱搜

    Jessie 發表在 痞客邦 留言(0) 人氣()