http://huihai.iteye.com/blog/1005144sql
在存儲過程當中常常會有sqlserver
SET QUOTED_IDENTIFIER on SET QUOTED_IDENTIFIER off
這樣的語句,那麼SET QUOTED_IDENTIFIER究竟是什麼意思,有什麼用呢,今天下午仔細的看了一下。
若是SET QUOTED_IDENTIFIER on時,在建立一個表時,若是這個表的表名,恰好用到了sqlserver的標識符,以下面的狀況ui
create table distinct( id int not null constraint pk_1 primary key, value varchar(255), flag int )
上面的語句運行是會出錯的,無論SET QUOTED_IDENTIFIER爲on仍是off,會提示 在關鍵字 'distinct' 附近有語法錯誤。
那是由於distinct是sqlserver的標識符,若是想以distinct爲表時,在QUOTED_IDENTIFIER爲off的狀況下,是不能建立表名爲distinct的表的,由於在QUOTED_IDENTIFIER爲off狀況下,sqlserver的標識符是不容許加引號的,因此在 SET QUOTED_IDENTIFIER off的狀況下,無論distinct加引號或不加引號或加雙引號都是不能夠的。
可是在 SET QUOTED_IDENTIFIER on 的狀況下是能夠把sqlserver的標識符加上雙引號來建立以sqlserver標識符爲表名的表,可是加單引號也是不能夠的。spa
create table "distinct"( id int not null constraint pk_1 primary key, value varchar(255), flag int )
能夠運行code
create table ‘distinct’( id int not null constraint pk_1 primary key, value varchar(255), flag int )
不能夠運行server