乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      SQL Server數(shù)據(jù)庫(kù)技術(shù)(46)----編程資料集中營(yíng)--八角123--bajiao...

       johnlane 2007-08-03

      SQL Server數(shù)據(jù)庫(kù)技術(shù)(46)

      當(dāng)表創(chuàng)建好后,可能根據(jù)需要要對(duì)表的列、約束等屬性進(jìn)行添加、刪除或修改,這就需要修改表結(jié)構(gòu)。

      7.4.1 用Enterprise Manager 修改
      在Enterprise Manager 中選擇要進(jìn)行改動(dòng)的表,單擊右鍵,從快捷菜單中選擇“DesignTable”選項(xiàng),則會(huì)出現(xiàn)如圖7-4 所示的修改表結(jié)構(gòu)對(duì)話框。可以在圖7-4 所示的對(duì)話框中修改列的數(shù)據(jù)類型、名稱等屬性或添加、刪除列,也可以指定表的主關(guān)鍵字約束。單擊工具欄中的圖標(biāo),出現(xiàn)如圖7-5 所示的編輯表和約束的屬性的對(duì)話框??梢栽谄渲芯庉嫺鞣N約束和一些表的屬性。



      7.4.2 用ALTER TABLE 命令修改
      ALTER TABLE 命令可以添加或刪除表的列、約束,也可以禁用或啟用已存在的約束
      或觸發(fā)器。其語(yǔ)法如下:
      ALTER TABLE table
      { [ALTER COLUMN column_name
      { new_data_type [ (precision[, scale] ) ]
      [ COLLATE < collation_name > ]
      [ NULL | NOT NULL ]
      | {ADD | DROP} ROWGUIDCOL } ]
      | ADD
      { [ ]
      | column_name AS computed_column_expression
      }[,...n]
      | [WITH CHECK | WITH NOCHECK] ADD
      { }[,...n]
      | DROP
      { [CONSTRAINT] constraint_name
      | COLUMN column
      }[,...n]
      | {CHECK | NOCHECK} CONSTRAINT
      {ALL | constraint_name[,...n]}
      | {ENABLE | DISABLE} TRIGGER
      {ALL | trigger_name[,...n]}
      }
      ::= { column_name data_type }
      [ [ DEFAULT constant_expression ]
      | [ IDENTITY [(seed, increment ) [NOT FOR REPLICATION] ] ]
      ]
      [ ROWGUIDCOL ]
      [ COLLATE < collation_name > ]
      [ ] [ ...n]
      ::= [CONSTRAINT constraint_name]
      { [ NULL | NOT NULL ]
      | [ { PRIMARY KEY | UNIQUE }
      [CLUSTERED | NONCLUSTERED]
      [WITH FILLFACTOR = fillfactor]
      [ON {filegroup | DEFAULT} ] ] ]
      | [ [FOREIGN KEY]
      REFERENCES ref_table [(ref_column) ]
      [ ON DELETE { CASCADE | NO ACTION } ]
      [ ON UPDATE { CASCADE | NO ACTION } ]
      [NOT FOR REPLICATION ] ]
      | CHECK [NOT FOR REPLICATION]
      (logical_expression)}
      ::= [CONSTRAINT constraint_name]
      { [ { PRIMARY KEY | UNIQUE }
      [ CLUSTERED | NONCLUSTERED]
      { ( column [ ASC | DESC ] [,...n] ) }
      [ WITH FILLFACTOR = fillfactor]
      [ON {filegroup | DEFAULT} ] ]
      | FOREIGN KEY
      [(column[,...n])]
      REFERENCES ref_table [(ref_column[,...n])]
      [NOT FOR REPLICATION]
      [ ON DELETE { CASCADE | NO ACTION } ]
      [ ON UPDATE { CASCADE | NO ACTION } ]
      | CHECK [NOT FOR REPLICATION]
      (search_conditions)}
      各參數(shù)說(shuō)明如下:

      • table
        指定要修改的表的名稱。如果表不在當(dāng)前數(shù)據(jù)庫(kù)中或表不屬于當(dāng)前的用戶,就必須指明其所屬的數(shù)據(jù)庫(kù)名稱和所有者名稱。
      • ALTER COLUMN
      • new_data_type
        指定新的數(shù)據(jù)類型名稱,其使用標(biāo)準(zhǔn)如下:
        列的原數(shù)據(jù)類型應(yīng)可以轉(zhuǎn)換為新的數(shù)據(jù)類型;
        新的數(shù)據(jù)類型不能為TIMESTAMP;
        新的數(shù)據(jù)類型允許列為NULL 值;
        如果原來(lái)的列是IDENTITY 列,則新的數(shù)據(jù)類型應(yīng)支持IDENTITY 特性;
        當(dāng)前的SET ARITHABORT 設(shè)置將被視為處于ON 狀態(tài)。
      • precision
        指定新數(shù)據(jù)類型的位數(shù)。
      • scale
        指定新數(shù)據(jù)類型的小數(shù)位數(shù)。
      • NULL | NOT NULL
        指明列是否允許NULL 值。如果添加列到表中時(shí),指定它為NOT NULL, 則必須指定此列的缺省值。選擇此項(xiàng)后,new_data_type [(precision [, scale ])]選項(xiàng)就必須指定,即使precision 和scale 選項(xiàng)均不變,當(dāng)前的數(shù)據(jù)類型也需要指出來(lái)。
      • WITH CHECK | WITH NOCHECK
        指定已經(jīng)存在于表中的數(shù)據(jù)是否需要使用新添加的或剛啟用的FOREIGN KEY 約束或CHECK 約束來(lái)驗(yàn)證。如果不指定,WITH CHECK 作為新添加約束的缺省選項(xiàng),WITH NOCHECK 作為啟用舊約束的缺省選項(xiàng)。
      • {ADD | DROP} ROWGUIDCOL
        添加或刪除列的ROWGUIDCOL 屬性。ROWGUIDCOL 屬性只能指定給一個(gè) UNIQUEIDENTIFIER 列。
      • ADD
        添加一個(gè)或多個(gè)列、計(jì)算列或表約束的定義。
      • computed_column_expression
        計(jì)算列的計(jì)算表達(dá)式。
      • DROP { [CONSTRAINT] constraint_name | COLUMN column_name }
        指定要?jiǎng)h除的約束或列的名稱。處于下列情況的列不能刪除;
        用于復(fù)制的列;
        用于索引的列;
        用于CHECK FOREIGN KEY UNIQUE 或PRIMARY KEY 約束的列;
        定義了缺省約束或綁定了一個(gè)缺省值對(duì)象的列;
        綁定了規(guī)則(Rule)的列。
      • { CHECK | NOCHECK} CONSTRAINT
        啟用或禁用FOREIGN KEY 或CHECK 約束。
      • ALL
        使用NOCHECK 選項(xiàng)禁用所有的約束,或使用CHECK 選項(xiàng)啟用所有的約束。
      • {ENABLE | DISABLE} TRIGGER
        啟用或禁用觸發(fā)器。
      • ALL
        啟用或禁用選項(xiàng)針對(duì)所有的觸發(fā)器。
      • trigger_name
        指定觸發(fā)器名稱。
      其它參數(shù)與創(chuàng)建表和約束中所講的相同。
      例7-13: 創(chuàng)建一個(gè)定貨商信息表,然后修改簡(jiǎn)介列的數(shù)據(jù)類型。
      create table order_firm (
      order_firm_id char (8) primary key,
      firm_name varchar (50) not null
      firm_introduce char(50) null
      ) on [primary]
      alter table order_firm
      alter column firm_introduce varchar(250) null
      例7-14: 創(chuàng)建一個(gè)定貨表再插入一個(gè)定貨商編號(hào)列。
      create table orders(
      order_id char(8) ,
      p_id char(8) foreign key references products(p_id),
      order_quantity smallint check (order_quantity>=10),
      constraint pk_order_id primary key (order_id),
      ) on [primary]
      alter table orders
      add order_firm_id char(8) null
      constraint fk_order_firm_id foreign key references order_firm(order_firm_id)
      例7-15: 更改上例中的檢查約束,并刪除一個(gè)外關(guān)鍵字約束。
      alter table orders
      add constraint chk_order_quantity check (order_quantity>=100)
      drop constraint chk_order_quantity

      7.4.3 用存儲(chǔ)過(guò)程Sp_rename 修改表名和列名
      Sp_rename 存儲(chǔ)過(guò)程可以修改當(dāng)前數(shù)據(jù)庫(kù)中用戶對(duì)象的名稱,如表、列、索引、存儲(chǔ)過(guò)程等。其語(yǔ)法如下:
      sp_rename [@objname =] ‘object_name‘,
      [@newname =] ‘new_name‘
      [, [@objtype =] ‘object_type‘]
      其中[@objtype =] ‘object_type‘是要改名的對(duì)象的類型,其值可以為‘COLUMN’、‘DATABASE’、‘INDEX’、‘USERDATATYPE’、‘OBJECT’。值‘OBJECT’指代了系統(tǒng)表sysobjects 中的所有對(duì)象,如表、視圖、存儲(chǔ)過(guò)程、觸發(fā)器、規(guī)則、約束等。‘OBJECT’值為默認(rèn)值。

      例7-16:更改orders 表的列p_id 名稱為products_id
      exec sp_rename ‘orders.[p_id]‘, ‘product_id‘, ‘column‘
      運(yùn)行結(jié)果如下:
      Caution: Changing any part of an object name could break scripts and stored procedures.
      The column was renamed to ‘product_id‘.

      例7-17: 更改orders 表的名稱為p_orders。
      exec sp_rename ‘orders‘, ‘p_orders‘‘
      運(yùn)行結(jié)果如下:
      Caution: Changing any part of an object name could break scripts and stored procedures.
      The object was renamed to ‘p_orders‘.

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多