--使用游标循环来更改主键约束---------------------------------------Declare @TbName sysname
Declare @sql varchar(4000)Declare c_Key cursor for
  select [name] from sysobjects where xtype='U' and name like 'sb_%'
open c_Key
fetch next from c_Key into @TbNamewhile(@@fetch_status=0)
Begin
  set @sql='alter table '+@TbName+' add constraint PK_'+@TbName+' primary key([sbbh])'
  Exec(@sql)
  fetch next from c_Key into @TbName
End
Go

解决方案 »

  1.   

    多谢楼上的朋友的答案不过发现一个小bug就是如果现有表中sbbh可以为null则会报错
    现更正一下自己学习:
    Declare @TbName sysname
    declare @sql1 varchar(4000),@sql2 varchar(4000)Declare c_Key cursor for
      select [name] from sysobjects where xtype='U' and name like 'sb_%'
    open c_Key
    fetch next from c_Key into @TbNamewhile(@@fetch_status=0)
    Begin
      set @sql1 = 'alter table '+@TbName+' alter column sbbh varchar(20) not null'
      set @sql2='alter table '+@TbName+' add constraint PK_'+@TbName+' primary key([sbbh])'
      Exec(@sql)
      fetch next from c_Key into @TbName
    End
    Go