?在sqlserver2005数据库项目中,创建视图或存储过程的时候往往有以下开头语句:
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO
………………
………………
GO
SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO
这些是 SQL-92 设置语句,使 SQL Server 2000/2005 遵从 SQL-92 规则。 当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。当 SET QUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,且必须符合所有 Transact-SQL 标识符规则。 SQL-92 标准要求在对空值进行等于 (=) 或不等于 (<>) 比较时取值为 FALSE。当 SET ANSI_NULLS 为 ON 时,即使 column_name 中包含空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中包含非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍会返回零行。 当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于 (<>) 比较运算符不遵从 SQL-92 标准。使用 WHERE column_name = NULL 的 SELECT 语句返回 column_name 中包含空值的行。使用 WHERE column_name <> NULL 的 SELECT 语句返回列中包含非空值的行。此外,使用 WHERE column_name <> XYZ_value 的 SELECT 语句返回所有不为 XYZ_value 也不为 NULL 的行。
?
?
?
?
CREATE PROCEDURE [dbo].[ pr1_sc_ins] @Param1 char(10),@Param2 char(2),@Param3 real AS BEGIN ?insert into sc(sno,cno,score) values(@Param1,@Param2,@Param3) END
?
?
?
CREATE PROCEDURE SF_图书借阅 AS BEGIN TRAN ?UPDATE 图书信息 SET 现存量=isnull(现存量,0)-1 ??FROM 图书信息 as a,图书借阅 as b ??where a.编号=b.图书编号 AND b.状态='新借' ?UPDATE 图书借阅 set 续借次数=0,状态='未还' ??where 状态='新借' commit
GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ONGO
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|