天天看點

SQL實作表名更改,列名更改,限制更改

SQL實作表名更改,列名更改,限制更改 (轉)

  1. 修改表名

    格式:sp_rename tablename,newtablename
    sp_rename tablename,newtablename      
  2. 修改字段名

    格式:sp_rename 'tablename.colname',newcolname,'column'
    sp_rename 'tablename.colname',newcolname,'column'      
  3. 添加字段

    格式:alter table table_name add new_column data_type [interality_codition]
    示例1
    ALTER TABLE student Add nationality varchar(20)
    
    --示例2 添加int類型的列,預設值為 0
    alter table student add studentName int default 0
    
       
    --示例3 添加int類型的列,預設值為0,主鍵
    alter table student add studentId int primary key default 0    
       
    --示例4 判斷student中是否存在name字段且删除字段
    if exists(select * from syscolumns where id=object_id('student') and name='name') begin   
    alter table student DROP COLUMN name    
    end       
  4. 更改字段

    格式:alter table table_name alter column column_name
    ALTER TABLE student ALTER COLUMN name VARCHAR(200)      
  5. 删除字段

    格式:alter table table_name drop column column_name
    ALTER TABLE student DROP COLUMN nationality;      
  6. 檢視字段限制

    格式: select * from information_schema.constraint_column_usage where TABLE_NAME = table_name
    SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME FROM information_schema.CONSTRAINT_COLUMN_USAGE
    WHERE TABLE_NAME = 'student'      
  7. 檢視字段預設限制表達式 (即預設值等)

    格式:select * from information_schema.columns where TABLE_NAME = table_name
    SELECT TABLE_NAME, COLUMN_NAME, COLUMN_DEFAULT FROM information_schema.COLUMNS
    WHERE TABLE_NAME='student'      
  8. 檢視字段預設限制名

    格式:select name from sysobjects where object_id(table_name)=parent_obj and xtype=’D’
    select name from sysobjects
    where object_id('表?名?')=parent_obj and xtype='D'      
  9. 删除字段限制

    格式:alter table tablename drop constraint constraintname
    ALTER TABLE student DROP CONSTRAINT PK__student__2F36BC5B772B9A0B      
  10. 添加字段限制

    格式:alter table tablename add constraint constraintname primary key (column_name)
    --示例1
    ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo)
    
    --示例2  添加主鍵限制(Primary Key)
    -- 存在主鍵限制PK_stuNO,則删除
    IF EXISTS(SELECT * FROM sysobjects WHERE name='PK_stuNo' and xtype='PK')
        Alter TABLE stuInfo
    Drop Constraint PK_stuNo
    Go
    -- 重新添加主鍵限制PK_stuNO
    ALTER TABLE stuInfo  ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo)
    Go
    
    --示例3 添加 唯一UQ限制(Unique Constraint)
    -- 存在唯一限制UQ_stuNO,則删除
    IF EXISTS(SELECT * FROM sysobjects WHERE name='UQ_stuID' and xtype='UQ')
        Alter TABLE stuInfo
    Drop Constraint UQ_stuID
    Go
    -- 重新添加唯一限制UQ_stuID
    ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE (stuID)
    
    --示例4 添加預設DF限制(Default Constraint)
    -- 存在預設限制UQ_stuNO,則删除
    IF EXISTS(SELECT * FROM sysobjects WHERE name='DF_stuAddress' and xtype='D')
        Alter TABLE stuInfo Drop Constraint DF_stuAddress
    Go
    -- 重新添加預設限制DF_stuAddress
    ALTER TABLE stuInfo  ADD CONSTRAINT DF_stuAddress DEFAULT ('位址不詳') FOR stuAddress
    
    --示例5 檢查CK限制(Check Constraint)
    -- 存在檢查限制UQ_stuNO,則删除
    IF EXISTS(SELECT * FROM sysobjects WHERE name='CK_stuAge' and xtype='C')
        Alter TABLE stuInfo Drop Cons      
  11. 添加外鍵

--删除外鍵

alter table AdItem drop constraint AdOrder_AdItem_FK1

--增加外鍵

alter table AdItem

add constraint AdOrder_AdItem_FK1 foreign key (AI_nOrderNo) references AdOrder(AO_nOrderNo)