Microsoft SQL Server 2000 超級管理手冊(十五)

本文介绍了使用Transact - SQL和Microsoft SQL Server 2000 Enterprise Manager管理资料表的方法,包括修改、新增、删除和重新命名资料行以及删除整张资料表等操作。还说明了不同操作的条件、命令语法,对比了两种管理方式的特点及优势。

15. 使用Transact-SQL和Enterprise Manager管理資料表

使用 T-SQL 修改資料表

使用 Enterprise Manager 修改資料表

修改資料表所造成的影響

刪除資料表

本章總結

在 第10章 中,您已經學習了如何透過定義資料行和資料型別來建立資料表。一旦建立了資料表,當然可能進行修改,甚至當資料表中已經存在資料時也可以。本章說明修改資料表的幾種方式,包括修改、新增、刪除和重新命名資料行以及刪除整張資料表等等。建立和修改資料表的條件約束(確保資料完整性的一種方法)與觸發程序(在某種條件下自動執行的一種特殊類型預存程序)將在 第16章 和 第22章 介紹。

在本章中,我們將研究兩種管理資料表的方式:利用Transact-SQL(T-SQL)或是利用Microsoft SQL Server 2000 Enterprise Manager。要注意的是,當您在修改資料表時,T-SQL與Enterprise Manager提供的彈性並不相同。使用Enterprise Manager會比T-SQL更為有利,因為在您執行一些特定的修改時,使用Enterprise Manager會比較簡單。如果您試圖進行一個不當的修改,Enterprise Manager會顯示錯誤訊息或是提供建議。不過,T-SQL能提供一個好處:如果您以指令碼的方式來執行命令,您可以擁有一份追蹤您如何變更資料的記錄。

在正式開始前,我們需要在MyDB資料庫中建立兩張資料表:Bicycle_Sales和Bicycle_Inventory作為本章使用的範例。資料表Bicycle_Sales包含腳踏車銷售商的銷售資訊,其中包括下述各資料行:make_id、model_id、description 、 year 、 sale_id 、 price 、 quantity和sale_date。make_id和model_id兩個資料行被指定為外部索引鍵條件約束,引用Bicycle_Inventory資料表中的make_id和model_id兩個資料行,組成唯一的叢集索引。在 第16章 中將介紹,外部索引鍵條件約束只能引用參考資料表中的一個主鍵資料行或引用其他的唯一約束條件資料行(約束條件將在 第16章 詳細介紹,索引將在 第17章 中介紹)。

sale_id資料行被宣告為Bicycle_Sales資料表的主鍵叢集索引。用於建立這些資料表的CREATE TABLE敘述如下:

USE MyDB
GO
CREATE TABLE Bicycle_Inventory
(
   make_name       char(10)     NOT NULL,
   make_id         tinyint      NOT NULL,    
   model_name      char(12)     NOT NULL,
   model_id        tinyint      NOT NULL,
   in_stock        tinyint      NOT NULL,
   on_order        tinyint      NULL,
   CONSTRAINT      MI_clu_indx
   UNIQUE CLUSTERED(make_id, model_id)
)
GO

CREATE TABLE Bicycle_Sales
(
  make_id     tinyint    NOT NULL,   --Used in foreign 
                                     --key constraint 
  model_id    tinyint    NOT NULL,   --Also used in foreign 
                                     --key constraint
  description char(30)   NULL,
  year        char(4)    NOT NULL,
  sale_id     int        NOT NULL IDENTITY (1,1) PRIMARY KEY CLUSTERED,
  price       smallmoney NOT NULL,
  quantity    tinyint    NOT NULL,
  sale_date   datetime   NOT NULL,
  CONSTRAINT  sales_inventory_fk FOREIGN KEY (make_id, model_id)
  REFERENCES  Bicycle_Inventory(make_id, model_id)
)
GO

注意

一定要在建立Bicycle_Sales資料表之前建立Bicycle_Inventory資料表。如果要先建立Bicycle_Sales資料表,會顯示一條錯誤訊息。Bicycle_Sales資料表透過條件約束來參考Bicycle_Inventory資料表,所以如果Bicycle_Inventory資料表不存在,就不能建立條件約束,結果將顯示錯誤。


現在我們已經建立了範例資料庫資料表,下面將對它們做幾項修改。首先使用T-SQL,然後使用Enterprise Manager。

使用T-SQL修改資料表
 

在本節中,您將學習如何使用T-SQL命令修改、新增、刪除和重新命名已經存在的資料表中的資料行。修改資料表的T-SQL命令是 ALTER TABLE 

修改資料行
 

一旦建立了資料表,就可以利用ALTER TABLE命令來修改資料行的資料型別、精確度(對於數字類型)和是否允許空值(nullability),並且可新增或刪除資料行的ROWGUIDCOL屬性。透過使用其他T-SQL命令可以進行其他的修改,如新增一個預設值,這些命令將在 第16章 中介紹。

並不是所有的資料行都可以修改。一般而言,下列幾種類型的資料行就不能修改:

  • 作為主索引鍵或外部索引鍵條件約束之一部份的資料行
     
  • 用於複寫的資料行(複寫請參閱 第26章 )
     
  • 具有text、ntext、image或timestamp等資料型別的資料行
     
  • 計算資料行或用於計算的資料行
     
  • 一個 ROWGUIDCOL 資料行(不過您可以新增或卸除資料行的ROWGUIDCOL屬性)
     
  • 使用在索引中的資料行
     
  • 用於 CHECK  UNIQUE 條件約束的資料行(條件約束在 第16章 中會說明)
     
  • 使用 CREATE STATISTICS 陳述式執行統計時用到的資料行(SQL Server產生的統計資料可以使用ALTER TABLE來刪除。)
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值