从mysql导出到sqlserver后主键属性没过来 ,每个表的主键字段名都一样,想直接在sqlserver中批量设置,只是要将他们批量设置成主键 

解决方案 »

  1.   

    写一个批处理,添加一个primary key约束
      

  2.   

    难道要我一个个的改?我想用php来操作sqlserver试试
      

  3.   

    用select a.name from sysobjects a inner join syscolumns b on a.id=b.id where b.name=主键名,找出所有带这个主键的表,然后用游标循环,或者直接select循环(表数量不多时),来做。
    直接循环的话select @sql=@sql+'alter table '+a.name+' ADD CONSTRAINT PK_主键列名 PRIMARY KEY CLUSTERED (主键列名) ON [PRIMARY] ' from sysobjects a inner join syscolumns b on a.id=b.id where b.name=主键列名
    然后exec(@sql)即可。
    游标的方法类似,只是用游标循环而已,如果表比较多则需要用游标(否则8000的varchar变量不够用)
      

  4.   

    直接在系统表里面用update语句一次搞定
      

  5.   

    看了下sysobjects表中xtype字段值为pk的是设置了主键的,直接select出来又没有,但不知道还有哪些字段值要更新,比如是哪个主键,找不出规律