MSSQLSERVER批量修改表中某个字段可为NULL

database

-- 危险操作,处理前记得先备份数据库


1
declare@sqlvarchar(500),@tbnamevarchar(100)

2begin

3

4   -- 创建游标

5   declare cursor_item cursor fast_forward forselect[name]from sysobjects where xtype="U"AND id in(select id from syscolumns where name="myColumnName"and colstat=0 )

6   open cursor_item;--打开游标

7   while1=1--开始循环

8   begin

9     fetchnextfrom cursor_item into@tbname; --赋值到变量中

10     if(@@fetch_status!=0) break;--如果没有结果退出循环
11

12     -- 拼接修改字段的SQL语句

13     set@sql="alter table "+@tbname+" alter column myColumnName int NULL"

14

15     -- 执行拼接的SQL

16     exec(@sql);

17

18   end

19   close cursor_item --关闭游标

20   deallocate cursor_item

21

22end;

 

注意:

syscolumns 保存列信息的系统表

sysobjects 保存表信息的系统表

 colstat=0  表示查询非自增长标识列

 

以上是 MSSQLSERVER批量修改表中某个字段可为NULL 的全部内容, 来源链接: utcz.com/z/534828.html

回到顶部