alter table yourtable alter column cname varchar(10)
1。修改类型为允许为空的(如果当前不许为空的话,因为不许为空是不许drop默认值的)
   ALTER TABLE 你的表 ALTER COLUMN 列名 原来类型 null2。找出默认值constraint,并且drop
declare @name varchar(20)select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('你的表') and b.id=a.cdefault and a.name='列名' and b.name like 'DF%'exec('alter table 你的表 drop constraint '+@name) 3。修改类型
ALTER TABLE 你的表 ALTER COLUMN 列名 新的类型 not null4。添加默认值constraint
exec('alter  table  你的表  add  constraint  '+@name+'  default  1  for  列名')/***********修改表的所有者****************/
exec sp_changeobjectowner 'tablename','ownername'
若要把全部表的所有者都改成DBO,可以如下:
exec sp_MSForEachTable 'exec sp_changeobjectowner ''tablename'',''dbo'''
注:有可能会出错,不用理它,执行一遍就行了。A. 重命名表
下例将表 customers 重命名为 custs。EXEC sp_rename 'customers', 'custs'B. 重命名列
下例将表 customers 中的列 contact title 重命名为 title。EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'/*********** 加主键
--如果表里没有主键的话
alter table a add constraint pk_1 primary key (field1,field2,field3)
/*********** 加约束
alter table a add constraint ck_1 check(field1>=0)http://expert.csdn.net/Expert/topic/2389/2389170.xml?temp=5.811709E-02
1: alter table sbasic add constraint df_grade default(0) for grade
2: alter table sbasic add constraint pk_sbasic primary key (sno)
3: alter table sc add constraint pk_sc primary key (sno,cno)
4: alter table sc add constraint fk_sc foreign key(sno) refrence sbacic(sno)
5: create unique index id_sc on sc (sno)

解决方案 »

  1.   

    加:字段描述
    exec sp_addextendedproperty N'MS_Description', N'字段描述', N'user', N'dbo', N'table', N'表名', N'column', N'字段名'
    GO
      

  2.   

    CREATE   table T1 (id int , name char (20))
    EXEC   sp_addextendedproperty 'caption', 'Employee ID', 'user', dbo, 'table', 'T1', 'column', id
    EXEC   sp_updateextendedproperty 'caption', 'Employee 1 ID', 'user', dbo, 'table', 'T1', 'column', idSELECT   *
    FROM   ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', 'T1', 'column', default)
      

  3.   

    --修改表的描述
    EXECUTE sp_updateextendedproperty N'MS_Description', N'新的表描述', N'user', N'dbo', N'table', N'表名', NULL, NULL
      

  4.   

    --修改字段的描述
    exec sp_updateextendedproperty N'MS_Description', N'新的字段描述', N'user', N'dbo', N'table', N'表名', N'column', N'字段名'
      

  5.   

    如果 没有先 sp_addextendedproperty 就不能 sp_addextendedproperty当然我可以先 sp_addextendedproperty 再 sp_updateextendedproperty但这样第就一定会有一个语句出错,当然目的可以达到,但不断的系统出错,好象不大好!有没有什么好的办法可以避免呢?谢谢啦!!
      

  6.   

    --从系统表中读取,判断一下
    if exists(select 1 from sysproperties where id=object_id('你的表') and name='MS_Description')
       EXECUTE sp_updateextendedproperty N'MS_Description', N'新的表描述', N'user', N'dbo', N'table', N'表名', NULL, NULL
    else 
        EXECUTE sp_addextendedproperty N'MS_Description', N'新的表描述', N'user', N'dbo', N'table', N'表名', NULL, NULL
      

  7.   

    --如果是字段的描述
    if exists(select 1 from sysproperties a join syscolumns b on a.id=b.id and a.smallid=b.colid
    where a.id=object_id('你的表') and a.name='MS_Description' and b.name='字段名')
       EXECUTE sp_updateextendedproperty N'MS_Description', N'新的字段描述', N'user', N'dbo', N'table', N'表名', N'column', N'字段名'
    else 
        EXECUTE sp_addextendedproperty N'MS_Description', N'新的字段描述', N'user', N'dbo', N'table', N'表名',  N'column', N'字段名'