一個資料庫能否保持資訊的正確性、及時性、很大程度上依賴於資料庫的更新功能的強弱與即時。資料庫的更新包括插入、刪除、修改(也稱為更新)三種操作。本章將分別講述如何使用這些操作,以便有效地更新資料庫。
在SQL Server 中可以在Enterprise Manager 中查看資料庫表的資料時添加資料,但這種方式不能應付資料的大量插入,需要使用INSERT 語句來解決這個問題。
11.1.1 INSERT 文法
資料庫的資訊時常需要改變使用者需要添加資料,INSERT 語句提供了此功能。INSERT語句通常有兩種形式。一種是插入一條記錄;另一種是插入子查詢的結果。後者可以一次插入多條記錄。
注意:當插入VARBINARY類型的資料時,其尾部的“0”將被去掉。
當插入VARCHAR或TEXT類型的資料時,其後的空格將被去掉,如果插入一個只含空格的字串,則會被認為插入了一個長度為零的字串。
IDENTITY列不能指定資料,在VALUES列表中應跳過此列。
對字元類型的列,當插入資料,特別是插入字串中含有數字字元以外的字元時,最好用引號將其括起來,否則容易出錯。
column_list中列的順序可以與表結構中的順序不同,但VALUES中的值必須與COLUMN_list中的列相對應。
11.1.2 插入單行
以下舉例說明如何插入單行資料:
例11-1: 插入資料到訂購商資訊表中。
use pangu
insert firms
(firm_id, f_name, f_intro)
values(10070001, 'SQL', '製作資料庫軟體的公司')
運行結果如下:
(1 row(s) affected)
例11-2: 插入資料到訂購商資訊表中。
use pangu
insert firms
/* 當表中所有的列均被指定時可以省略column_list */
values(10070001, 'SQL', '製作資料庫軟體的公司', 100700010007, '00-12345678', 234325, 'chengdu')
11.1.3 插入子查詢結果
子查詢不僅可以嵌套在SELECT 語句中,用以構造父查詢的條件,也可以嵌套在
INSERT 語句中,用以產生要插入的資料。插入子查詢的INSERT 語句文法如下:
INSERT [INTO]
{ table_name WITH ( <table_hint_limited> [...n])
| view_name
| rowset_function_limited }
{ [(column_list)]
subquery }
其功能是以批量插入,一次將子查詢的結果全部插入指定表中。
11.1.4 用預存程序插入資料
在INSERT 語句中可以通過執行預存程序來取得要插入的資料。所插入的資料是儲存
過程中SELECT 語句所檢索的結果集。使用預存程序插入資料的文法如下:
INSERT [INTO]
{ table_name WITH ( <table_hint_limited> [...n])
| view_name
| rowset_function_limited }
{ [(column_list)]
EXECUTE procedure
其中procedure 既可以是一個已經存在的系統預存程序或使用者自訂的預存程序,也
可以在INSERT 語句中直接編寫預存程序。
查看全套"MS SQL入門基礎教程"