(4.40)sql server默認連接選項


一、SQLserver 默認連接選項

當我們連接sqlserver數據庫時,我們發現Sqlserver Profiler 里面的Audit Login 事件:

-- network protocol: TCP/IP

1    set quoted_identifieron

2    set arithabortoff

3    set numeric_roundabortoff

4    set ansi_warningson

5    set ansi_paddingon

6    set ansi_nullson

7    set concat_null_yields_nullon

8    set cursor_close_on_commitoff

9    set implicit_transactionsoff

10   set language 簡體中文

11   set dateformat ymd

12   set datefirst7

13   set transaction isolation level read committed

 

1    set quoted_identifier on

ON:表示標識符可以由雙引號分隔,而文字必須由單引號分隔. eg:

 select * from "students"where "name"='lili'.

OFF: 文字可以用單引號,也可以用雙引號.

(1)當對數據庫中的對象名使用保留關鍵字時,SET QUOTED_IDENTIFIER 必須為 ON。

(2)當在計算列或索引視圖上創建或操作索引時,SET QUOTED_IDENTIFIER 必須為 ON。如果 SET QUOTED_IDENTIFIER 為 OFF,則計算列或索引視圖上帶索引的表上的 CREATE、UPDATE、INSERT 和 DELETE 語句將失敗。

2    set arithabort off

在登錄會話中,應始終將 ARITHABORT 設置為 ON。 將 ARITHABORT 設置為 OFF 可能對查詢優化產生負面影響,進而導致性能問題。

3    set numeric_roundabort off

ON: 在表達式中出現精度損失時將生成錯誤。

OFF:精度損失不生成錯誤信息,並且將結果舍入為存儲結果的列或變量的精度。

4    set ansi_warnings on

ON:

(1)如果聚合函數(如 SUM、AVG、MAX、MIN、STDEV、STDEVP、VAR、VARP 或 COUNT)中出現空值,將生成警告消息.

(2) 被零除錯誤和算術溢出錯誤將導致回滾語句,並生成錯誤消息。

OFF:

(1)不發出警告.

(2)被零除錯誤和算術溢出錯誤將導致返回空值。

5    set ansi_padding on

推薦設置為:ON

6    set ansi_nulls on

ON:

(1)在執行分布式查詢時應將 SET ANSI_NULLS 設置為 ON。

(2)當 column_name 中包含空值,使用 WHERE column_name =NULL 的 SELECT 語句仍返回零行。 即使 column_name 中包含非空值,使用 WHERE column_name<> NULL 的 SELECT 語句仍會返回零行。

OFF:

(1) 使用 WHERE column_name = NULL 的 SELECT 語句返回 column_name 中包含空值的行。

7    set concat_null_yields_null on

ON:串聯空值與字符串將產生 NULL 結果.eg:SELECT 'abc' + NULL 將生成 NULL.

OFF:空值作為空字符串處理.eg: SELECT 'abc' + NULL 將生成 abc.

8    set cursor_close_on_commit off

ON:遵從 ISO 標准,在提交或回滾時關閉所有打開的游標.

OFF:則在提交事務時將不關閉游標.

9    set implicit_transactions off

ON:

  (1)隱式事物模式,即每句sql操作默認開啟事物,用戶必須在該事務結束時將其顯式(手動commit)提交或回滾。否則,當用戶斷開連接時,事務及其包含的所有數據更改將被回滾。

  (2)當SET IMPLICIT_TRANSACTIONS 為 ON 時執行 BEGIN TRANSACTION 語句會導致打開兩個嵌套的事務;外層的rollback會回滾掉內層事務的所有commit修改.

OFF: 切換到「自動提交模式」下,所有單個語句在成功完成時將被提交。

set implicit_transactionson

select @@TRANCOUNT--查看事務個數

begin transaction -- 顯式調用事務

update test..studentsset passwd='123456' where name='lili'

commit transaction

--Commit outstanding transaction.

COMMIT TRANSACTION;

 

sample:

10   set language 簡體中文

11   set dateformat ymd

12   set datefirst7s

13   set transaction isolation level read committed

   

 

 

 

二、如何設置這些屬性

1. 在數據源中設置

該設置可以在 ODBC 數據源、ODBC 連接屬性或 OLE DB 連接屬性(它們在連接到 SQL Server 實例之前在應用程序中設置)中進行配置。

(控制面板->管理工具->數據源ODBC)

  

 

 

 2. 在服務器端設置:(√可設置開啟)

   

 

 

參考

微軟中國TechNet:https://technet.microsoft.com/zh-cn/library/ms190356(v=sql.120).aspx
————————————————

原文鏈接:https://blog.csdn.net/sunquana/article/details/47687517


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM