关于setquotedidentifieron和setansinullson

关于setquotedidentifieron和setansinullson

ID:34742161

大小:50.62 KB

页数:4页

时间:2019-03-10

关于setquotedidentifieron和setansinullson_第1页
关于setquotedidentifieron和setansinullson_第2页
关于setquotedidentifieron和setansinullson_第3页
关于setquotedidentifieron和setansinullson_第4页
资源描述:

《关于setquotedidentifieron和setansinullson》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、关于SETQUOTED_IDENTIFIERON和SETANSI_NULLSON这些是SQL-92设置语句,使SQLServer2000/2005遵从SQL-92规则。当SETQUOTED_IDENTIFIER为ON时,标识符可以由双引号分隔,而文字必须由单引号分隔。当SETQUOTED_IDENTIFIER为OFF时,标识符不可加引号,且必须符合所有Transact-SQL标识符规则。SQL-92标准要求在对空值进行等于(=)或不等于(<>)比较时取值为FALSE。当SETANSI_NULLS为ON时,即使column

2、_name中包含空值,使用WHEREcolumn_name=NULL的SELECT语句仍返回零行。即使column_name中包含非空值,使用WHEREcolumn_name<>NULL的SELECT语句仍会返回零行。当SETANSI_NULLS为OFF时,等于(=)和不等于(<>)比较运算符不遵从SQL-92标准。使用WHEREcolumn_name=NULL的SELECT语句返回column_name中包含空值的行。使用WHEREcolumn_name<>NULL的SELECT语句返回列中包含非空值的行。此外,使用W

3、HEREcolumn_name<>XYZ_value的SELECT语句返回所有不为XYZ_value也不为NULL的行。  QUOTED_IDENTIFIER的作用是为了定义标识符  符合所有标识符格式规则的标识符可以使用分隔符,也可以不使用分隔符。  不符合标识符格式规则的标识符必须使用分隔符。    分隔标识符在下列情况下使用:     当在对象名称或对象名称的组成部分中使用保留字时。   推荐不要使用保留关键字作为对象名称。从 Microsoft® SQL Server™ 早期版本升级的数据库可能含有标识符

4、,这些标识符包括早期版本中未保留而在 SQL Server 2000 中保留的字。可用分隔标识符引用对象直到可改变其名称。    当使用未被列为合法标识符的字符时。   SQL Server 允许在分隔标识符中使用当前代码页中的任何字符。但是,不加选择地在对象名称中使用特殊字符将使 SQL 语句和脚本难以阅读和维护。    Transact-SQL 所使用的分隔符类型:        说明  分隔符仅用于标识符。分隔符不能用于关键字,不论它们在 SQL Server 中是否被标记为保留字。    被引用的标识符用双引号 

5、(") 分隔开:   SELECT * FROM "Blanks in Table Name"    括在括号中的标识符用方括号 ([ ]) 分隔:   SELECT * FROM [Blanks In Table Name]    仅当 QUOTED_IDENTIFIER 选项设置为 ON 时,被引用的标识符才有效。默认情况下,当用于 SQL Server 的 Microsoft OLE DB 提供程序和 SQL Server ODBC 驱动程序连接时,将 QUOTED_IDENTIFIER 设置为 ON。默认情况下,

6、DB-Library 不将 QUOTED_IDENTIFIER 设置为 ON。不管使用何种接口,个别应用程序或用户可随时更改设置。SQL Server 提供了多种方法来指定该选项。例如,在 SQL Server 企业管理器和 SQL 查询分析器中,该选项可在对话中设置。在 Transact-SQL 中,可以使用 SET QUOTED_IDENTIFIER、sp_dboption 的 quoted identifier 选项或 sp_configure 的 user options 选项将此选项设为多种级别。    当 Q

7、UOTED_IDENTIFIER 为 ON 时,对于 SQL 语句中的双引号和单引号 (') 的使用,SQL Server 遵循 SQL-92 规则:     双引号只能用于分隔标识符,不能用于分隔字符串。   为保持与现有应用程序的兼容性,SQL Server 并不完全强制该规则。如果字符串没有超过标识符的长度,则该字符串可包含在双引号内。但不建议这样做。    单引号必须用来包含字符串,不能用于分隔标识符。   如果字符串包含单引号,则需要在单引号前再增加一个单引号:    SELECT * FROM "My Tab

8、le"  WHERE "Last Name" = 'O''Brien'    当 QUOTED_IDENTIFIER 为 OFF 时,对于双引号和单引号的使用,SQL Server 遵循如下规则:     引号不能用于分隔标识符,而是用括号作为分隔符。      单引号或双引号可用于包含字符串。   如果使用双引号,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。