下面是对SET ANSI_NULLS ON, SET ANSI_NULLS OFF,SET QUOTED_IDENTIFIER ON 及SET
QUOTED_IDENTIFIER OFF的设置说明
以我们对表PieceStatusHistory进行查询为例
SET ANSI_NULLS ON
表示对空值(null), 等于(=)或不等于(<>)进行判断时,遵从 SQL-92 规则
SET ANSI_NULLS ON
1. SELECT *FROM PieceStatusHistory WHERE FI1 = NULL
即使是表中字段FI1中包含空值(null),在进行条件判断 where FI1=NULL 时,该select查询语句返回的数据是空的/返回零行。
2. SELECT *FROM PieceStatusHistory WHERE JobIndex <> NULL
即使是表中字段JobIndex 中包含非空值,在进行条件判断 where JobIndex <>NULL时,该select查询语句返回的数据是空的/返回零行。
SET ANSI_NULLS OFF
表示对空值(null),等于(=)或不等于(<>)进行判断时,不再遵从 SQL-92 规则
SET ANSI_NULLS OFF
1. SELECT *FROM PieceStatusHistory WHERE FI1 = NULL
当FI1字段中包含了空值(null),在进行条件判断 where FI1= null
时,该select查询语句会返回表中column_name 字段值为空(null)的数据行
2. SELECT *FROM PieceStatusHistory WHERE JobIndex <> NULL
当JobIndex字段中包含了非空值,在进行条件判断 whereJobIndex<> null 时,该select 查询语句会返回表中JobIndex字段值不为空的数据行。
SET QUOTED_IDENTIFIER ON
表示使用 引用标识符时,标识符可以用双引号分隔,也可以不用双引号分隔,但是,文字必须用单引号分隔。
SET QUOTED_IDENTIFIER ON
1. SELECT "TimeStamp" FROM PieceStatusHistory WHERE TimeStamp = '2020-07-20 16:53:56.000'
或SELECT TimeStamp FROM PieceStatusHistory WHERE TimeStamp = '2020-07-20
16:53:56.000'
2. 创建与系统关键字重复的,允许使用双引号括起来,就能正常使用。否则不允许使用。如创建tabel 'distinct'
SET QUOTED_IDENTIFIER OFF
表示标识符不能用双引号分隔,否则标识符会被当做字符串值来返回,不再是字符来返回。而且,文字部分必须用单引号或双引号分隔。
SET QUOTED_IDENTIFIER OFF
1. SELECT "TimeStamp" FROM PieceStatusHistory WHERE TimeStamp = '2020-07-20 16:53:56.000'
2. 与系统关键字重复的,即便有双引号括起来,也不允许使用