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 產生,沒想到插入欄位會比增加欄位麻煩這麼多。
廣告
Categories: 資料庫 | 2 則迴響

文章分頁導航

2 thoughts on “SQL Server 2005 插入欄位

  1. 小朱

    微軟在封裝底層工作的能力太強了 XD~

    喜歡

  2. J

    我也正好為插入欄位所苦,
    看來沒有插入欄位指令>"<

    喜歡

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

在 WordPress.com 建立免費網站或網誌.

%d 位部落客按了讚: