QQQ asked in 電腦與網際網路軟體 · 2 decades ago

SQL SERVER 2000資料表中的資料型別...

資料型別能像Accesss中資料表的資料類型設自動編號嗎?

4 Answers

Rating
  • 2 decades ago
    Favorite Answer

    建立與修改識別項資料行

    每個資料表只能建立一個識別項資料行和一個全域唯一識別項資料行。

    IDENTITY 屬性

    識別項資料行可使用 IDENTITY 屬性來實作,它可讓應用程式的開發者替插入資料表的第一個資料列指定識別編號 (Identity Seed 屬性),並指定遞增值 (Identity Increment 屬性) 以便與種子相加來決定接下來的識別編號。在將數值插入擁有識別項資料行的資料表時,Microsoft® SQL Server™ 2000 會藉著將遞增值加至初始值來產生下個識別值。

    當您使用 IDENTITY 屬性來定義識別項資料行時,請考慮:

    資料表只能有一個資料行具有 IDENTITY 屬性,並且該資料行必須定義成 decimal、int、numeric、smallint 或 tinyint 資料型別。

    可指定種子和遞增值。這兩者的預設值均為 1。

    識別項資料行不可允許 Null 值,並且不可包含 DEFAULT 定義或物件。

    在 IDENTITY 屬性設定之後,資料行可經由 IDENTITYCOL 關鍵字讓選取清單來參考。

    您可使用OBJECTPROPERTY 函數來判斷資料表是否有 IDENTITY 資料行,並使用 COLUMNPROPERTY 函數來決定 IDENTITY 資料行的名稱。

    全域唯一識別項

    雖然 IDENTITY 屬性可在一個資料表內自動替資料列編號,每個資料表的識別項資料行都可能產生相同的數值。這是因為 IDENTITY 屬性只能保證其所在資料表的唯一性。若應用程式必須產生對於整個資料庫或甚至全世界的每個網路電腦的每個資料庫都是唯一的識別項資料行,那麼可使用 ROWGUIDCOL 屬性、uniqueidentifier 資料型別和 NEWID 函數。

    當您使用 ROWGUIDCOL 屬性來定義全域唯一識別項資料行時,請考慮:

    資料表只能有一個 ROWGUIDCOL 資料行,並且該資料行必須定義成 uniqueidentifier 資料型別。

    SQL Server 並不會自動替資料行產生數值。若要插入全域唯一數值,可在資料行建立 DEFAULT 定義,並使用 NEWID 函數來產生全域唯一數值。

    在 ROWGUIDCOL 屬性設定之後,資料行可經由 ROWGUIDCOL 關鍵字讓選取清單來參考。這就和 IDENTITY 資料行可使用 IDENTITYCOL 關鍵字來參考一樣。

    您可使用 OBJECTPROPERTY 函數來決定資料表是否有 ROWGUIDCOL 資料行,並使用 COLUMNPROPERTY 函數來決定 ROWGUIDCOL 資料行的名稱。

    因為 ROWGUIDCOL 屬性並不會強制唯一性,所以必須使用 UNIQUE 條件約束來保證插入 ROWGUIDCOL 資料行的數值是唯一的。

    附註 若識別項資料行存在於經常有刪除動作的資料表中,識別數值之間會出現缺口;刪除的識別數值並不會重複使用。若要避免這類缺口,請不要使用 IDENTITY 屬性。取而代之地,您可建立觸發程序,以便在插入資料列時,根據識別項資料行的現有數值來決定新的識別項數值。

    2005-08-07 03:35:41 補充:

    To Alan~

    IDENTITY 屬性必須是數值型態,所以一定是以1、2、3表現

    你要用Product001, Product002表現,只能在SELECT時改變它

    SELECT 'Product'+RIGHT('00'+STR(id),3) AS id_no,....

    Source(s): SQL Server Books On Line
  • 5 years ago

    網上看了這家,因為我公司的硬碟故障,微軟的張經理都找過他們,把他們送去內湖救不出來的,都給救出來

    http://www.datamaster.com.tw/

    http://millerforyew1.pixnet.net/blog/

  • Anonymous
    7 years ago

    還是要去 http://aaashops。com 品質不錯,老婆很喜歡。

    伽僾叮哓候乗

  • 2 decades ago

    如果不要1、2、3 要變成Product001, Product002 要如何設定呢?!

Still have questions? Get your answers by asking now.