存储过程中SET QUOTED_IDENTIFIER ON有什么用
的有关信息介绍如下:在数据库中新建存储过程的时候,默认都会有一个 SET QUOTED_IDENTIFIER ON 在前面,那么,这句话到底是什么意思呢? QUOTED_IDENTIFIER ON 与 SET QUOTED_IDENTIFIER OFF 的区别在哪里呢?
通过sqlserver数据库管理工具,创建的存储过程的大致结构如图所示,在代码的最前面默认会有一个 SET QUOTED_IDENTIFIER ON 的语句,但是,这句话到底有什么用呢?或许很多人都不太明白
11sqlserver如何创建存储过程?执行存储过程?
下面开始演示这个语句的作用。在sql server management studio管理工具中点击【新建查询】,创建一个新的sql语句书写窗口,后续的所有sql语句,都在这个新的窗口中演示
开启SET QUOTED_IDENTIFIER ON,然后试着创建一个表名字为distinct的表,当写完sql,就可以看到distinct下面有一道红色的波浪线,这就表示有语法错误了
点击上面菜单的 勾勾 图标,检查当前窗口中的sql语法是否正确。从检测结果可以看出,当开启SET QUOTED_IDENTIFIER ON的时候,distinct与系统关键字重复了不能通过
假设开启SET QUOTED_IDENTIFIER ON,而且一定要创建distinct为名字的表名,这个时候就可以使用双引号了,将distinct括起来即可。写完之后,点击执行按钮,就可以看到这个表创建成功了
关闭SET QUOTED_IDENTIFIER OFF,此时distinct虽然有双引号括起来,仍然会报语法错误的,sql语句不会得到执行
关闭SET QUOTED_IDENTIFIER OFF,如果去掉distinct括起来的双引号,仍然会报语法错误,sql语句还是不会得到执行。
总结:
1)SET QUOTED_IDENTIFIER ON:与系统关键字重复的,允许使用双引号括起来,就能正常使用。注意是双引号
2)SET QUOTED_IDENTIFIER OFF:与系统关键字重复的,不允许使用