月度归档:2019年11月

mssql sqlserver 使用游标模拟实现for循环的方法分享


摘要:
下文讲述sqlserver中使用游标实现for循环的方法,如下所示:
实验环境:sql server 2008 R2

  DECLARE @name sysname 
DECLARE My_Cursor CURSOR --定义游标
FOR (SELECT name FROM sysobjects) --查出需要的集合放到游标中
OPEN My_Cursor; --打开游标
FETCH NEXT FROM My_Cursor INTO @name; --读取第一行数据(将sysobjects表中的name放到@name变量中)
WHILE @@FETCH_STATUS = 0
    BEGIN
        PRINT @name; --打印数据
        ---sql脚本 
        FETCH NEXT FROM My_Cursor INTO @name; --读取下一行数据(将sysobjects表中的name放到@name变量中)
    END
CLOSE My_Cursor; --关闭游标
DEALLOCATE My_Cursor; --释放游标
GO  

mssql sqlserver 将数据库可空(NULL)字段修改为NOT NULL非空字段的两种方法分享


摘要:
话说数据库种存在NULL字段,是一件非常揪心的事情,因为 NULL值会导致许多查询异常,会导致索引无法运用,所以我们一定要保证数据表中的字段为非空(null).
实验环境:sql server 2008 R2

例:
下文讲述对一张已经存在的表中的NULL字段调整的方法分享 。

---方法1:为当前数据表添加默认值约束,避免出现数据为NULL的情况
   --1、为现有字段添加默认值约束
   alter table tableName ADD CONSTRAINT DF_field_defaultValue  default (0) for [列名]

    --2、更新现有NULL值
   update tableName set [列名]=0 where [列名]  is null
 
 

 ---方法2: 新建临时表,然后使用插入的方式将数据导入
   create table tmp_tableName
    ([列名]  ...)

	---导入数据,做NULL 处理

    ---删除数据表
	  drop  table tableName
	
	 ---修改表名
     EXECUTE sp_rename N'tmp_tableName', N'tableName', 'OBJECT'