`
tanglong8848
  • 浏览: 71157 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

SQLSERVER存储过程查找数据表中某列存在空值

 
阅读更多
CREATE PROCEDURE [dbo].[PRO_CHK_COLUMNS_VALUES]
	-- Add the parameters for the stored procedure here
	 @TableName nvarchar(50) ,
	 @column_name  nvarchar(50) OUTPUT
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	-- Declare the return variable here
	DECLARE @list_column_name nvarchar(50)
	DECLARE @sql nvarchar(1000)
  DECLARE @count int

  declare cur cursor for --定义游标		
    select name from sys.columns  where object_id=OBJECT_ID(''+@TableName+'')
    open cur--打开游标  
	fetch next from cur into @list_column_name --把提取操作的列数据放到局部变量中  
	while(@@fetch_status=0) --游标读取下一条数据是否成功  
		begin
	    SET	@sql='select @count = COUNT(1) from '+@TableName +' where '+@list_column_name +' is null  '
	    exec sp_executesql @sql,N'@count nvarchar(50) out ',@count out 
				if @count > 0
					begin
						 SELECT @column_name=@list_column_name
						 break
					end
		   fetch next from cur into  @list_column_name --读取下一条数据记录放到局部变量中,变量的数目必须与游标选择列表中的列的数目一致  
		
		end    		
	close cur--关闭游标  
	deallocate cur--删除游标 

END

分享到:
评论

相关推荐

    全数据库检索存储过程

    综上所述,"全数据库检索存储过程"是一个用于在MS-SQL Server中高效搜索数据的强大工具,它结合了存储过程的灵活性和全文检索的威力,使用户能够方便地查找包含特定关键字的任何数据。在实际开发和管理中,理解并...

    SQL Server选择填空题

    11. 存储过程调用:在SQL Server 2008中,调用存储过程`MyP1`来查找Age为18岁的学生,正确的方式是使用EXEC语句,如`EXEC Myp1 18`,A选项正确。 这些知识点涵盖了数据库的基本概念,如表结构、键约束、查询语法、...

    SQL server 语句大全

    根据给定的文件标题、描述、标签以及部分内容,下面将...以上是对SQL Server中各种基本概念和操作的概述,这些知识点涵盖了SQL Server的核心功能和技术要点。掌握这些内容可以帮助您更好地管理和操作SQL Server数据库。

    accp 4.0 sql server 内部测试

    在插入数据到具有标识列的表中时,如果不显式指定标识列的值,SQL Server会自动为其分配一个唯一的标识符。这在批量插入数据时非常有用,可以避免手动管理主键的值。 ### 10. SQL Server架构与路径 SQL Server ...

    SQLSERVER数据库结构比较工具

    本篇文章将深入探讨"SQLSERVER数据库结构比较工具"及其在比较两个数据库之间表差异和字段差异方面的应用。 首先,我们要理解数据库结构比较的基本概念。数据库结构主要包括表、视图、索引、存储过程、触发器等对象...

    sqlserver中在指定数据库的所有表的所有列中搜索给定的值

    在SQL Server中,有时我们需要在特定数据库的所有表中查找包含特定值的列。例如,假设我们在数据库`NorthWind`中导入了一些客户数据,并且知道一个客户名为“ZhangShan”,我们想要找出所有包含这个名字的表格和列。...

    SQL Server索引基础知识.pdf

    - **SQL Server约束**: 约束是表的一部分,用于强制执行数据完整性规则,如唯一性、非空值等。约束是自动执行的,不需要任何用户干预。 - **DML触发器**: 触发器是一种特殊的存储过程,它可以在特定的数据操作语言...

    sqlserver达标考试题及答案.pdf

    14. 数据库范式:第一范式确保每列的原子性,第二范式确保表中所有非主键列都完全依赖于主键,第三范式确保列与主键之间不存在传递依赖。 15. 日期数据类型:SQL Server 中的日期数据类型包括 DATE、TIME、DATETIME...

    T-SQL编程入门(SQL Server)

    - 唯一性约束保证列中的值是唯一的,但允许有空值的存在。 - **默认值 (DEFAULT)**: - 默认值约束允许为没有提供值的列指定默认值。 - **检查 (CHECK)**: - 检查约束允许对列值设置条件。 - **外键 (FOREIGN ...

    《数据库及SQL Server》综合练习

    从给定的文件信息中,我们可以提炼出一系列与数据库及SQL Server相关的专业知识点,这些知识点覆盖了数据库系统的基础概念、数据库设计、SQL Server的操作以及数据规范化的理论。 ### 数据库系统的基本角色 - **...

    软件A081-sqlserver期末考试试题B.doc

    18. 辅助数据文件扩展名:在SQL Server中,辅助数据文件的扩展名为.ndf。 19. SQL Server最低版本:SQL Server 2005的学习版是配置要求最低的版本。 20. 模式/内模式映射数量:在数据库的三级模式结构中,模式/内...

    SQLserver21天自学通SQL21天自学通

    - **从外部数据源中导入和导出数据**:介绍如何将数据从其他数据库或文件格式导入到SQL Server中,以及如何将数据导出到其他格式。 #### 第九天:创建和操作表 - **CREATEDATABASE语句**:用于创建新的数据库。 - ...

    SQL Server自学题库.pdf

    - **定义:** 存储过程是预先编译并存储在 SQL Server 中的一组 T-SQL 语句。 - **优点:** 可以提高代码复用性和执行效率。 **22. 替代触发器** - **定义:** 替代触发器是在触发触发器的修改操作之前执行的...

    经典SQL server 2005语句大全

    `NOT NULL`表示该列不允许有空值,`PRIMARY KEY`则表示该列为表的主键。 - **根据已有表创建新表** - **方法A**: `CREATE TABLE tab_new LIKE tab_old`。这种方式会基于`tab_old`表的结构创建一个名为`tab_new`的...

    2019sql数据库期末考试题及答案_数据库期末考试题及答案2018

    此表包含了SQL Server中所有用户定义的对象的信息,如表、视图、存储过程等。 - **D. Syslogs**:这个表与事务日志有关,而不是存储数据库对象的信息。 **2. 在存在下列关键字的 SQL 语句中,不可能出现 Where 子句...

    sql数据库期末考试题及答案.docx

    - **Sysobjects:** 这个系统表包含了SQL Server数据库中所有用户定义的对象的信息,如表、视图、存储过程等。它存储了每个对象的名字、类型以及其他相关信息。 - **其他选项解释:** - **Sysdatabases:** 存储...

    SQL语句精彩集锦

    - **COLUMNPROPERTY()**:这是一个内置函数,用于获取关于表或视图中列的元数据信息,如列是否是标识列。 - **EXISTS() 子查询**:用于检查子查询是否有结果,如果有,则返回TRUE,否则返回FALSE。在这里,它用于...

    SqlServer2000

    SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它提供了高效的数据存储、管理和分析功能。本文将深入探讨SQL Server 2000中的`SELECT`语句及其相关知识点,帮助用户更好地理解和应用SQL语言。 1. **...

Global site tag (gtag.js) - Google Analytics