SQL存储过程前面有语句setANSI_NULLSONsetQUOTED_IDENTIFIERONgo,这是什么意思
发布网友
发布时间:2022-05-24 13:02
我来回答
共1个回答
热心网友
时间:2023-10-14 17:05
这些是SQL-92设置语句,使SQLServer2000/2005遵从SQL-92规则。
当SETQUOTED_IDENTIFIER为ON时,标识符可以由双引号分隔,而文字必须由单引号分隔。当SETQUOTED_IDENTIFIER为OFF时,标识符不可加引号,且必须符合所有Transact-SQL标识符规则。
SQL-92标准要求在对空值进行等于(=)或不等于(<>)比较时取值为FALSE。当SETANSI_NULLS为ON时,即使column_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语句返回列中包含非空值的行。此外,使用WHEREcolumn_name<>XYZ_value的SELECT语句返回所有不为XYZ_value也不为NULL的行