一、SET ANSI_NULLS ON|OFF
主要用来指定sql语句中“=”和“<>”和NULL值一起使用时是否符合ISO的标准
(1)当SET ANSI_NULLS 设置为 ON 时:
执行这样一条sql语句:select * from table_name where column_name = NULL ,此时即使表中存在值为NULL的记录,sql语句返回的仍是0行,这时,如果要查询NULL值的记录,可以用 select * from table_name where column_name is NULL这样的语句;同样,我们执行:select * from table_name where column_name <> NULL 时,即使表中存在不为NULL的值,sql语句返回的仍是0行,此时,如果我们要查询不为NULL值的记录:select * from table_name where column_name is not NULL;
(2)当SET ANSI_NULLS 设置为 OFF 时:
此时,执行:select * from table_name where column_name = NULL 和 select * from table_name where column_name is NULL 的返回结果是一样;同样,执行:select * from table_name where column_name <> NULL 和 select * from table_name where column_name is not NULL 返回结果页是一样;
示例:
select * from Table_1,返回结果:
set ansi_nulls on
select * from Table_1 where Column_1 = null
select * from Table_1 where Column_1 is null,返回结果:
set ansi_nulls off
select * from Table_1 where Column_1 = null
select * from Table_1 where Column_1 is null,返回结果:
二、QUOTENAME函数使用方法
使用QUOTENAME函数可以使输入的字符串成为一个合理的标识符,比如:直接查询select abc[]123是错误的,因为[]是sql的标识符,但如果我们使用select quotename('abc[]123')查询则可以返回结果:[abc[]]123]