14.3.1 设置所有数字型字段的默认值.sql

来自「关于Sql的一些命令的源代码」· SQL 代码 · 共 23 行

SQL
23
字号
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT --前面部分是更新表中数据NULL的为0
	N'UPDATE '+QUOTENAME(o.name)
	+N' SET '+QUOTENAME(c.name)
	+N'=0 WHERE '+QUOTENAME(c.name)
	+N' IS NULL
	--设置默认值处理
	ALTER TABLE '+QUOTENAME(o.name)
	+N' ADD DEFAULT 0 FOR '+QUOTENAME(c.name)
FROM sysobjects o,syscolumns c,systypes t
WHERE o.id=c.id 
	AND OBJECTPROPERTY(o.id,N'IsUserTable')=1
	AND c.xusertype=t.xusertype
	AND(t.name IN(N'decimal','numeric','real','float')
		OR t.name LIKE '%money'
		OR t.name LIKE '%int')
	AND c.status<>0x80     --标识列(IDENTITY)不能设置
	AND NOT EXISTS(     --已经设置了默认值的不再设置
		SELECT * FROM syscomments
		WHERE id=c.cdefault)
EXEC sp_MSforeach_Worker @command1=N'?'

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?