SQL Server 2000自动添写当前库中值为空的字段
来源:互联网 发布:猪八戒淘宝推广有效吗 编辑:程序博客网 时间:2024/05/08 00:06
--自动添写当前数据库中值为空的字段;
--SQL Server 2000
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [setdefault] AS
declare @tbName varchar(50); --表名
declare @tbColumn varchar(50); --列名
declare @cType int; --类型
declare @cdefault int; --默认值
declare @isnull int; --是否为空
declare @sql nvarchar(300);
declare @zeroAffectCount int;
declare @blankAffectCount int;
declare @dateAffectCount int;
declare @allCount int;
select @zeroAffectCount=0, @blankAffectCount=0,@dateAffectCount=0,@allCount=0;
DECLARE setdefault_Cursor CURSOR FOR
select SO.name, SC.name,SC.xtype,SC.cdefault, SC.isnullable
from sysobjects SO inner join syscolumns SC on SO.id=SC.id
and SO.xtype = 'U' and SO.name != 'dtproperties';
OPEN setdefault_Cursor;
FETCH NEXT FROM setdefault_Cursor into @tbName, @tbColumn, @cType, @cdefault, @isnull;
WHILE @@FETCH_STATUS = 0
BEGIN
if(@cType in (select xtype from systypes where name in ('bit','tinyint','smallint','int','real','decimal','float','numeric')))
begin
set @sql = 'update '+ @tbName + ' set ' + @tbColumn + '= 0 where ' + @tbColumn + ' is null';
--print @sql;
exec(@sql);
set @zeroAffectCount = @zeroAffectCount + 1;
end
if(@cType in (select xtype from systypes where name in ('nvarchar', 'ntext','varchar')))
begin
set @sql = 'update '+ @tbName + ' set ' + @tbColumn + '= '''' where ' + @tbColumn + ' is null';
--print @sql;
exec(@sql);
set @blankAffectCount = @blankAffectCount + 1;
end
if(@cType in (select xtype from systypes where name='datetime'))
begin
set @sql = 'update '+ @tbName + ' set ' + @tbColumn + '= ''1900-1-1'' where ' + @tbColumn + ' is null';
--print @sql;
exec(@sql);
set @dateAffectCount = @dateAffectCount + 1;
end
set @allCount = @allCount + 1;
FETCH NEXT FROM setdefault_Cursor into @tbName, @tbColumn, @cType, @cdefault, @isnull;
END
select @zeroAffectCount as '填充零的行数', @blankAffectCount as '填充空符串的行数',
@dateAffectCount as '填充1900日期行数', @allCount as '游标游历的行数';
CLOSE setdefault_Cursor
DEALLOCATE setdefault_Cursor
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
- SQL Server 2000自动添写当前库中值为空的字段
- sql server查询字段值为空的记录
- [Struts]处理表单中值为空的日期类型字段
- Oracle中查询某字段不为空或者为空的SQL语句怎么写
- Oracle中查询某字段不为空或者为空的SQL语句怎么写
- Access 中值为空字符串字段与值为null字段的查询问题
- 查询出某字段值不为空的记录的SQL语句怎么写
- Sql Server、Oracle数据库判断字段是否为空的办法
- Sql Server、Oracle数据库判断字段是否为空的办法
- sql 字段默认值为空
- SQL Server自动增长字段的使用
- SQL SERVER 中自动编号的字段
- SQL Server自动增长字段的使用
- SQL Server 2008获取一个表的字段,类型,长度,是否主键,是否为空,注释等信息
- SQL Server 2008获取一个表的字段,类型,长度,是否主键,是否为空,注释等信息
- SQL Server 2008获取一个表的字段,类型,长度,是否主键,是否为空,注释等信息
- sql删除表中某字段下为空的数据
- sql server 修改IDENTITY 字段 的统计当前值
- 云计算的四个显著特点
- 关于OpenSSL里libssl32.dll与ssleay32.dll的区别
- 实现文本的复制(Firefox和IE都兼容)(一)
- 很奇怪的mysql
- MicroWindows介绍
- SQL Server 2000自动添写当前库中值为空的字段
- [双语阅读]研究:宝宝坐童车背对父母不利于发育
- 实现文本的复制(Firefox和IE都兼容)(二)
- 《ARM嵌入式Linux系统开发从入门到精通》学习笔记
- 共享库文件丢失
- 难得的精神
- 超级实用且不花哨的js代码大全
- [英语阅读]关注奥巴马组阁 学习实用英语
- vc 产生一定取值范围的随机数