SET ANSI_NULLS 和 SET QUOTED_IDENTIFIER 代表什么意思
时间: 2024-05-23 10:12:39 浏览: 207
SET ANSI_NULLS 和 SET QUOTED_IDENTIFIER 是 Transact-SQL 语句,它们用于控制 SQL Server 数据库中执行的相关选项。
SET ANSI_NULLS 控制在使用等于 (=) 或不等于 (<>) 操作符时,是否将 NULL 视为未知值。当 SET ANSI_NULLS 设置为 ON 时,使用等于或不等于操作符时,NULL 被视为未知值;当 SET ANSI_NULLS 设置为 OFF 时,NULL 被视为普通的值。
SET QUOTED_IDENTIFIER 控制是否启用引号标识符。在 SQL Server 中,标识符可以使用方括号 ([]) 或双引号 (") 进行引用。当 SET QUOTED_IDENTIFIER 设置为 ON 时,双引号被视为标识符的引号;当 SET QUOTED_IDENTIFIER 设置为 OFF 时,双引号被视为字符串的引号。通常建议将 SET QUOTED_IDENTIFIER 设置为 ON,以便能够使用 ANSI 标准中定义的双引号标识符。
相关问题
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO
`SET ANSI_NULLS ON` 和 `SET QUOTED_IDENTIFIER ON` 是SQL Server中的命令,用于设定查询语句的行为模式。这些设置通常出现在存储过程或脚本的开始,以确保一致性。
`SET ANSI_NULLS ON` 会启用ANSI标准,使得在比较运算符(如`=`, `<>`)中遇到NULL值时,它们会被当作非NULL处理,即NULL不会与任何其他值相匹配。这有助于避免意外的结果,因为默认情况下SQL Server会隐式转换NULL为对应的数据类型。
`SET QUOTED_IDENTIFIER ON` 则会让SQL Server解析SQL文本时区分大小写,使用双引号(`""`)来标识表名、列名等标识符,而非单引号(' ')。这样可以避免因大小写混淆导致的命名冲突。
在执行这些命令后,脚本的后续部分将按照设置的规则执行。例如:
```sql
USE [BMSCV2OutputWeekly]; -- 使用指定数据库
GO
SET ANSI_NULLS ON;
GO
-- 所有随后的WHERE条件都将明确地排除NULL值,如 WHERE column IS NOT NULL;
SET QUOTED_IDENTIFIER ON;
GO
-- 之后的表名、列名等都会使用双引号,如 "table_name"."column_name";
```
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON 这段代码是什么意思
这段代码是 Transact-SQL 语言中的设置命令,用于设置数据库连接的 ANSI_NULLS 和 QUOTED_IDENTIFIER 属性。
- SET ANSI_NULLS ON 表示在查询中启用 ANSI_NULLS 设置,即对于任何比较操作中具有 NULL 值的情况,结果都是未知的。
- SET QUOTED_IDENTIFIER ON 表示在查询中启用标识符引用设置,即使用双引号来引用标识符,而不是使用单引号。
这些设置可以影响 Transact-SQL 语句的解析和执行方式,因此在编写存储过程和触发器等数据库对象时,建议设置这些属性以确保一致的行为。
阅读全文
相关推荐

















