官术网_书友最值得收藏!

任務二 修改表的數據結構

在項目實施過程中,經常會遇到表結構的最初設計與實際使用存在差距的情況。如“學生表”的“籍貫”列的最大長度為10,實際使用時很可能會超過這個長度;再如,“性別”列只有0和1兩個值,用char(1)型更合適;又如,所有記錄的“學生編號”的值都是固定的4個字符,設置為char(4)比varchar(10)更節省存儲空間。因此,為了避免浪費存儲空間和保證應用程序的穩定運行,需要修改表的數據結構。類似的還有以下幾種情況。

● 向已經存在的表中增加新的列。

● 刪除表中不需要的列。

● 修改列的數據類型(包括修改字符串類型的長度)。

本任務以修改“學生表”的數據類型為例,分別介紹在【表設計】標簽頁和alter table語句中修改表結構的方法。

(一)在【表設計】標簽頁中修改表結構

讀者應通過對本節的執行,掌握在【表設計】標簽頁中修改表結構的方法。

【基礎知識】

在【表設計】標簽頁中修改表結構的操作方法與定義表屬性的操作方法完全一致。

【操作目標】

修改“學生表”的數據類型,修改內容見表3-4。

表3-4 修改“學生表”的數據結構

【操作步驟】

STEP 1 展開【SQL Server Management Studio】的【教學管理數據庫】節點,單擊子節點【表】,展開并顯示“教學管理數據庫”所擁有的系統表和用戶創建的表,如圖3-6所示。

圖3-6 顯示“教學管理數據庫”的系統表和用戶定義表

STEP 2 在【dbo.學生表】節點上單擊鼠標右鍵,在彈出的快捷菜單中單擊【設計】菜單項,打開“學生表”的【表設計】標簽頁。在列表框中按表3-4的要求修改數據類型,如圖3-7所示。

圖3-7 修改數據類型

STEP 3 單擊工具欄上的按鈕,保存對“學生表”的修改。

請讀者注意,如果表中已經存在數據,修改列的數據類型及字符串類型的長度時不能與已有的數據產生矛盾。假設“學生表”中存在一條記錄,“學生姓名”取值為“那斯魯丁·阿凡提”,長度為15個字節,如果將其數據類型改為varchar(10),將會丟失部分數據,變成“那斯魯丁·”。修改char或varchar類型的列的長度時,數字和一個英文字母占一個字節,一個漢字占兩個字節。

(二)用alter table語句修改表結構

alter table語句的參數很多,本節中只介紹幾個用于完成常用功能的參數,如修改列的數據類型、增加列、刪除列。

讀者應通過對本節的執行,掌握alter table語句的語法。

【基礎知識】

修改“學生表”中“學生編號”列的數據類型為char(4)的語法見表3-5。

表3-5 alter table語句的語法

用alter table語句修改表結構時,一次只能完成一項修改。

【操作目標】

用alter table語句修改“學生表”的數據結構,修改內容見表3-5。

【操作步驟】

STEP 1 啟動【SQL Server Management Studio】程序,將可用數據庫設置為

STEP 2 在【SQL查詢】標簽頁中,輸入如圖3-8所示的alter table語句。

STEP 3 單擊工具欄中的按鈕,執行alter table語句,執行信息在【消息】標簽頁中提示,如圖3-8所示。

圖3-8 用alter table語句修改表結構

關于alter table語句其他參數的詳細說明,有興趣的讀者可以參考“聯機叢書”的“ALTER TABLE語句”的“Transact-SQL參考”部分。

主站蜘蛛池模板: 鹤山市| 大悟县| 陆河县| 蒲江县| 清徐县| 舒城县| 南澳县| 贺兰县| 崇礼县| 涪陵区| 称多县| 安塞县| 隆德县| 吉隆县| 航空| 泾源县| 墨江| 伽师县| 康保县| 印江| 海门市| 滕州市| 田阳县| 博罗县| 富锦市| 邢台县| 堆龙德庆县| 民勤县| 行唐县| 湘阴县| 斗六市| 祁阳县| 西和县| 若尔盖县| 上犹县| 大田县| 祥云县| 淮安市| 北碚区| 鸡西市| 唐河县|