MS SQL入门基础:数据库缺省值
缺省值(Default)是往用戶輸入記錄時沒有指定具體數據的列中自動插入的數據。缺省值對象與ALTER TABLE 或CREATE TABLE 命令操作表時用DEFAULT 選項指定的缺省值功能相似,但缺省值對象可以用于多個列或用戶自定義數據類型,它的管理與應用同規則有許多相似之處。表的一列或一個用戶自定義數據類型也只能與一個缺省值相綁定。
9.3.1 創建缺省值
(1) 用CREATE DEFAULT 命令創建缺省值
CREATE DEFAULT 命令用于在當前數據庫中創建缺省值對象,其語法如下:
CREATE DEFAULT default_name AS constant_expression
其中constant_expression 子句是缺省值的定義。constant_expression 子句可以是數學表達式或函數,也可以包含表的列名或其它數據庫對象。
例9-11: 創建生日缺省值birthday_defa。
create default birthday_defa
as '1978-1-1'
例9-12: 創建姓名缺省值name_defa。
create default name_defa
as user
(2) 用Enterprise Manager 創建缺省值
在Enterprise Manager 中選擇數據庫對象“Defaults”, 單擊右鍵,從快捷菜單中選擇N“ew Default” 選項,即會彈出如圖9-6 所示的創建缺省值屬性對話框。輸入缺省值名稱和值表達式之后,單擊“確定”按鈕,即完成缺省值的創建。
9.3.2 查看缺省值
(1) 用Enterprise Manager 查看缺省值
在Enterprise Manager 中選擇“Defaults”對象,即可從右邊的任務板中看到缺省值的大部分信息。如圖9-7 所示。也可以選擇要查看的缺省值,單擊右鍵,從快捷菜單中選擇“Properties” 選項,即會出現如圖9-8 所示的缺省值屬性對話框,可以從中編輯缺省值的
值表達式。修改缺省值名稱的方法與修改規則名稱的方法相同,可以用Sp_rename 存儲過程修改,也可以在企業管理器的任務板窗口中直接修改。
(2) 用存儲過程Sp_helptext 查看缺省值
使用Sp_helptext 存儲過程可以查看缺省值的細節。
例9-13: 查看缺省值today。
exec sp_helptext today
運行結果如下:
------------------------------------------------------------------
Text
------------------------------------------------------------------
create default [dp_date] as getdate()
9.3.3 缺省值的綁定與松綁
創建缺省值后,缺省值僅僅只是一個存在于數據庫中的對象,并未發生作用。同規則一樣,需要將缺省值與數據庫表或用戶自定義對象綁定。
(1) 用Enterprise Manager 管理缺省值的綁定
在Enterprise Manager 中,選擇要進行綁定設置的缺省值,單擊右鍵,從快捷菜單中選擇“Properties” 選項,即會出現如圖9-8 所示的缺省值屬性對話框。
圖9-8 中的“Bind UDTs…” 按鈕用于綁定用戶自定義數據類型,“Bind Columns…”按鈕用于綁定表的列。在圖9-8 中單擊“Bind UDTs…” 按鈕,則出現如圖9-9 所示的綁定缺省值到用戶自定義數據類型的對話框;單擊“Bind Columns…” 按鈕,則出現如圖9-
10 所示的綁定缺省值到表的列的對話框。用它們來管理缺省值與表的列以及用戶自定義數據類型之間的綁定非常方便。
(2) 用存儲過程Sp_bindefault 綁定缺省值
存儲過程Sp_bindefault 可以綁定一個缺省值到表的一個列或一個用戶自定義數據類型上。其語法如下:
sp_bindefault [@defname =] 'default',
[@objname =] 'object_name'
[, 'futureonly']
其中'futureonly'選項僅在綁定缺省值到用戶自定義數據類型上時才可以使用。當指定此選項時,僅以后使用此用戶自定義數據類型的列會應用新缺省值,而當前已經使用此數據類型的列則不受影響。
例9-14 :綁定缺省值today 到用戶自定義數據類型hire_date 上。
exec sp_bindefault today, hire_date
運行結果如下:
--------------------------- ------------------------------
Default bound to data type.
The new default has been bound to columns(s) of the specified user data type.
(3) 用存儲過程Sp_unbindefault 解除缺省值的綁定
存儲過程Sp_unbindefault 可以解除缺省值與表的列或用戶自定義數據類型的綁定,其語法如下:
Sp_unbindefault [@objname =] 'object_name'
[,'futureonly']
其中'futureonly'選項同綁定時一樣,僅用于用戶自定義數據類型,它指定現有的用此用戶自定義數據類型定義的列仍然保持與此缺省值的綁定。如果不指定此項,所有由此用戶自定義數據類型定義的列也將隨之解除與此缺省值的綁定。
例9-15: 解除缺省值num_default 與表products 的quantity 列的綁定。
exec sp_unbindefault ‘products.[quantity]’
運行結果如下:
--------------------------- ------------------------------
(1 row(s) affected)
Default unbound from table column.
注意:如果列同時綁定了一個規則和一個缺省值、那么缺省值應該符合規則的規定。
不能綁定缺省值到一個用CREATE TABLE或ALTER TABLE命令創建或修改表時用DEFAULT選項指定了的缺省值的列上。
9.3.4 刪除缺省值
可以在Enterprise Manager 中選擇缺省值,單擊右鍵,從快捷菜單中選擇“Delete” 選項刪除缺省值,也可以使用DROP DEFAULT 命令刪除當前數據庫中的一個或多個缺省
值。其語法如下:
DROP DEFAULT {default_name} [,...n]
注意:在刪除一個缺省值前必須先將與其綁定的對象解除綁定。
例9-16: 刪除生日缺省值birthday_defa。
drop default birthday_defa
本章小結
數據完整性工具的應用是SQL Server 的一大特點,它通過在數據庫端使用特定的規定來管理流入與輸出系統的信息,而不是由應用程序本身來控制信息的類型,這使得數據獨立與應用程序成為開放的數據庫系統。
申明
非源創博文中的內容均收集自網上,若有侵權之處,請及時聯絡,我會在第一時間內刪除.再次說聲抱歉!!!
博文歡迎轉載,但請給出原文連接。
總結
以上是生活随笔為你收集整理的MS SQL入门基础:数据库缺省值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: libgo 支持mysql,loadru
- 下一篇: matlab程序改为m文件名,在MATL