是否可以屏蔽‘警告: 聚合或其它 SET 操作消除了空值。’一类警告信息?
2010-04-12 14:48
309 查看
由于不希望向执行存储过程的delphi程序返回警告信息,所以请教高手:是否有可能在存储过程中进行设置,让严重级别在11以下的警告信息不报告。当然修改存储过程,使之不出现‘警告: 聚合或其它 SET 操作消除了空值。’信息应该是最佳方法,但这不是我要的答案。
网友回复:有null时 isnull(,'')--转换一下
网友回复:isnull(null,'')--空字符
网友回复:应该可以,使用某个开关屏蔽信息.
我找找先.
网友回复:在开发中常碰到,在存储过程里转换一下空值为空字符
网友回复:楼主说的应该是结果集的列有空值,这个与设置无关
网友回复: set ansi_warnings off
===================================================
网友回复:
SET ANSI_WARNINGS
指定几种错误情况下的 SQL-92 标准行为。
语法
SET ANSI_WARNINGS { ON ¦ OFF }
注释
SET ANSI_WARNINGS 影响以下情况:
当设置为 ON 时,假如聚合函数(如 SUM、AVG、MAX、MIN、STDEV、STDEVP、VAR、VARP 或 COUNT)中出现空值,将生成警告信息。当设置为 OFF 时,不发出警告。
当设置为 ON 时,被零除错误和算术溢出错误将导致回滚语句并生成错误信息。当设置为 OFF 时,被零除错误和算术溢出错误将导致返回空值。假如在 character、Unicode 或 binary 列上尝试执行 INSERT 或 UPDATE 操作,而这些列中的新值长度超出最大列大小,则被零除错误和算术溢出错误将导致返回空值。假如 SET ANSI_WARNINGS 为 ON,则按 SQL-92 标准的指定将取消 INSERT 或 UPDATE。将忽略字符列的尾随空格,忽略二进制列的尾随零。当设置为 OFF 时,数据将剪裁为列的大小,并且语句执行成功。
说明 在 binary 或 varbinary 数据转换中发生截断时,不管 SET 选项的设置是什么,都不发出警告或错误信息。
可以使用 sp_configure 的 user options 选项,为与服务器的所有连接设置 ANSI_WARNINGS 的默认设置。有关更多信息,请参见 sp_configure 或设置配置选项。
创建或操作索引视图或计算列上的索引时,SET ANSI_WARNINGS 必须为 ON。假如 SET ANSI_WARNINGS 为 OFF,计算列或索引视图上带索引的表上的 CREATE、UPDATE、INSERT 和 DELETE 语句将失败。有关计算列上的索引视图和索引所必需的 SET 选项设置的更多信息,请参见 SET 中的"使用 SET 语句时的注重事项"。
Microsoft? SQL Server? 包含 ANSI warnings 数据库选项,该选项等同于 SET ANSI_WARNINGS。当 SET ANSI_WARNINGS 为 ON 时,如发生被零除、字符串超出数据库列及其它类似错误,将产生错误信息或警告。当 SET ANSI_WARNINGS 为 OFF 时,不产生这些错误和警告。model 数据库中的 SET ANSI_WARNINGS 默认值是 OFF。假如未指定,则应用 ANSI warnings 设置。假如 SET ANSI_WARNINGS 为 OFF,SQL Server 将使用 sp_dboption 的 ANSI warnings 设置。有关更多信息,请参见 sp_dboption 或设置数据库选项。
在执行分布式查询时应将 ANSI_WARNINGS 设置为 ON。
SQL Server ODBC 驱动程序和用于 SQL Server 的 Microsoft OLE DB 提供程序在连接时自动将 ANSI_WARNINGS 设置为 ON。这可以在 ODBC 数据源、ODBC 连接特性或 OLE DB 连接属性(它们在连接前在应用程序中设置)中进行配置。对来自 DB-Library 应用程序的连接,SET ANSI_WARNINGS 默认为 OFF。
当 SET ANSI_DEFAULTS 为 ON 时,将启用 SET ANSI_WARNINGS。
SET ANSI_WARNINGS 的设置是在执行或运行时设置,而不是在分析时设置。
假如 SET ARITHABORT 或 SET ARITHIGNORE 为 OFF,并且 SET ANSI_WARNINGS 为 ON,则当碰到被零除或溢出错误时,SQL Server 仍返回错误信息。
权限
SET ANSI_WARNINGS 权限默认授予所有用户。
示例
下例演示 SET ANSI_WARNINGS 为 ON 和 OFF 时的上述三种情况。
代码
USE pubs
GO
CREATE TABLE T1 ( a int, b int NULL, c varchar(20) )
GO
SET NOCOUNT ON
GO
INSERT INTO T1 VALUES (1, NULL, '')
INSERT INTO T1 VALUES (1, 0, '')
INSERT INTO T1 VALUES (2, 1, '')
INSERT INTO T1 VALUES (2, 2, '')
GO
SET NOCOUNT OFF
GO
PRINT '**** Setting ANSI_WARNINGS ON'
GO
SET ANSI_WARNINGS ON
GO
PRINT 'Testing NULL in aggregate'
GO
SELECT a, SUM(b) FROM T1 GROUP BY a
GO
PRINT 'Testing String Overflow in INSERT'
GO
INSERT INTO T1 VALUES (3, 3, 'Text string longer than 20 characters')
GO
网友回复:有null时 isnull(,'')--转换一下
网友回复:isnull(null,'')--空字符
网友回复:应该可以,使用某个开关屏蔽信息.
我找找先.
网友回复:在开发中常碰到,在存储过程里转换一下空值为空字符
网友回复:楼主说的应该是结果集的列有空值,这个与设置无关
网友回复: set ansi_warnings off
===================================================
网友回复:
SET ANSI_WARNINGS
指定几种错误情况下的 SQL-92 标准行为。
语法
SET ANSI_WARNINGS { ON ¦ OFF }
注释
SET ANSI_WARNINGS 影响以下情况:
当设置为 ON 时,假如聚合函数(如 SUM、AVG、MAX、MIN、STDEV、STDEVP、VAR、VARP 或 COUNT)中出现空值,将生成警告信息。当设置为 OFF 时,不发出警告。
当设置为 ON 时,被零除错误和算术溢出错误将导致回滚语句并生成错误信息。当设置为 OFF 时,被零除错误和算术溢出错误将导致返回空值。假如在 character、Unicode 或 binary 列上尝试执行 INSERT 或 UPDATE 操作,而这些列中的新值长度超出最大列大小,则被零除错误和算术溢出错误将导致返回空值。假如 SET ANSI_WARNINGS 为 ON,则按 SQL-92 标准的指定将取消 INSERT 或 UPDATE。将忽略字符列的尾随空格,忽略二进制列的尾随零。当设置为 OFF 时,数据将剪裁为列的大小,并且语句执行成功。
说明 在 binary 或 varbinary 数据转换中发生截断时,不管 SET 选项的设置是什么,都不发出警告或错误信息。
可以使用 sp_configure 的 user options 选项,为与服务器的所有连接设置 ANSI_WARNINGS 的默认设置。有关更多信息,请参见 sp_configure 或设置配置选项。
创建或操作索引视图或计算列上的索引时,SET ANSI_WARNINGS 必须为 ON。假如 SET ANSI_WARNINGS 为 OFF,计算列或索引视图上带索引的表上的 CREATE、UPDATE、INSERT 和 DELETE 语句将失败。有关计算列上的索引视图和索引所必需的 SET 选项设置的更多信息,请参见 SET 中的"使用 SET 语句时的注重事项"。
Microsoft? SQL Server? 包含 ANSI warnings 数据库选项,该选项等同于 SET ANSI_WARNINGS。当 SET ANSI_WARNINGS 为 ON 时,如发生被零除、字符串超出数据库列及其它类似错误,将产生错误信息或警告。当 SET ANSI_WARNINGS 为 OFF 时,不产生这些错误和警告。model 数据库中的 SET ANSI_WARNINGS 默认值是 OFF。假如未指定,则应用 ANSI warnings 设置。假如 SET ANSI_WARNINGS 为 OFF,SQL Server 将使用 sp_dboption 的 ANSI warnings 设置。有关更多信息,请参见 sp_dboption 或设置数据库选项。
在执行分布式查询时应将 ANSI_WARNINGS 设置为 ON。
SQL Server ODBC 驱动程序和用于 SQL Server 的 Microsoft OLE DB 提供程序在连接时自动将 ANSI_WARNINGS 设置为 ON。这可以在 ODBC 数据源、ODBC 连接特性或 OLE DB 连接属性(它们在连接前在应用程序中设置)中进行配置。对来自 DB-Library 应用程序的连接,SET ANSI_WARNINGS 默认为 OFF。
当 SET ANSI_DEFAULTS 为 ON 时,将启用 SET ANSI_WARNINGS。
SET ANSI_WARNINGS 的设置是在执行或运行时设置,而不是在分析时设置。
假如 SET ARITHABORT 或 SET ARITHIGNORE 为 OFF,并且 SET ANSI_WARNINGS 为 ON,则当碰到被零除或溢出错误时,SQL Server 仍返回错误信息。
权限
SET ANSI_WARNINGS 权限默认授予所有用户。
示例
下例演示 SET ANSI_WARNINGS 为 ON 和 OFF 时的上述三种情况。
代码
USE pubs
GO
CREATE TABLE T1 ( a int, b int NULL, c varchar(20) )
GO
SET NOCOUNT ON
GO
INSERT INTO T1 VALUES (1, NULL, '')
INSERT INTO T1 VALUES (1, 0, '')
INSERT INTO T1 VALUES (2, 1, '')
INSERT INTO T1 VALUES (2, 2, '')
GO
SET NOCOUNT OFF
GO
PRINT '**** Setting ANSI_WARNINGS ON'
GO
SET ANSI_WARNINGS ON
GO
PRINT 'Testing NULL in aggregate'
GO
SELECT a, SUM(b) FROM T1 GROUP BY a
GO
PRINT 'Testing String Overflow in INSERT'
GO
INSERT INTO T1 VALUES (3, 3, 'Text string longer than 20 characters')
GO
相关文章推荐
- 执行procedure过程,出现“警告:聚合或其它 SET 操作消除了空值”警告
- 关于:警告: 聚合或其他 SET 操作消除了空值。
- 存储过程中“ 警告: 聚合或其他 SET 操作消除了 Null 值” 导致错误的解决
- 存储过程中“ 警告: 聚合或其他 SET 操作消除了 Null 值” 导致错误的解决
- VS中如何去掉字符串操作函数的警告信息 _CRT_SECURE_NO_DEPRECATE
- 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表
- AppScan Source Edition是否可以和Email系统集成,通过邮件系统分发缺陷信息?
- 判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException, * 显示异常信息:a,b,c “不能构成三角形”;如果可以构成则显示三角形三个边长。在主方
- 关于serv-u公网访问出现“打开ftp服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹。详细信息:操作超时”的解决方法
- Java - Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?
- 匿名内部类是否可以继承其它类,是否可以实现接口?
- 新想法:我们的系统是否可以提供上报错误信息的功能
- 是否可以不暴露组件的类型库信息?
- 是否可以拒绝单个IP对ZK的访问,操作
- Qt工程中如何屏蔽警告信息
- 消除不用参数的警告信息
- 【Java面试题】13 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- BB10 Cascades: 如何消除“Unresolved inclusion”警告信息
- C#是否可以对内存直接进行操作?
- Static Nested Class 和 Inner Class的不同。Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implement