关于SQL Server 默认连接选项二三事
来源:互联网 发布:知乎 印度军工 编辑:程序博客网 时间:2024/06/01 09:58
一、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_identifieron
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 arithabortoff
在登录会话中,应始终将 ARITHABORT 设置为 ON。 将 ARITHABORT 设置为 OFF 可能对查询优化产生负面影响,进而导致性能问题。
3 set numeric_roundabortoff
ON: 在表达式中出现精度损失时将生成错误。
OFF:精度损失不生成错误信息,并且将结果舍入为存储结果的列或变量的精度。
4 set ansi_warningson
ON:
(1)如果聚合函数(如 SUM、AVG、MAX、MIN、STDEV、STDEVP、VAR、VARP 或 COUNT)中出现空值,将生成警告消息.
(2) 被零除错误和算术溢出错误将导致回滚语句,并生成错误消息。
OFF:
(1)不发出警告.
(2)被零除错误和算术溢出错误将导致返回空值。
5 set ansi_paddingon
推荐设置为:ON
6 set ansi_nullson
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_nullon
ON:串联空值与字符串将产生 NULL 结果.eg:SELECT 'abc' + NULL 将生成 NULL.
OFF:空值作为空字符串处理.eg: SELECT 'abc' + NULL 将生成 abc.
8 set cursor_close_on_commitoff
ON:遵从 ISO 标准,在提交或回滚时关闭所有打开的游标.
OFF:则在提交事务时将不关闭游标.
9 set implicit_transactionsoff
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
ODBC(default)
MSDN提示是否可在ODBC设置
now
1
quoted_identifier
ON
√
ON
2
arithabort
-
×
OFF
3
numeric_roundabort
-
×
OFF
4
ansi_warnings
ON
√
ON
5
ansi_padding
ON
√
ON
6
ansi_nulls
ON
√
ON
7
concat_null_yields_null
-
×
ON
8
cursor_close_on_commit
OFF
√
OFF
9
implicit_transactions
OFF
√
OFF
二、如何设置这些属性
1. 在数据源中设置
该设置可以在 ODBC 数据源、ODBC 连接属性或 OLE DB 连接属性(它们在连接到 SQL Server 实例之前在应用程序中设置)中进行配置。
(控制面板->管理工具->数据源ODBC)
2. 在服务器端设置:(√可设置开启)
参考
微软中国TechNet:https://technet.microsoft.com/zh-cn/library/ms190356(v=sql.120).aspx
- 关于SQL Server 默认连接选项二三事
- sql server 2008默认不允许远程连接
- 关于myeclipse 连接 sql server
- 默认的设置下 SQL Server 不允许进行远程连接
- Hibernate连接SQL Server(非默认实例)URL配置
- Openfire 配置连接SQL SERVER(非默认实例)
- sql server management studio连接实例 更改 默认端口
- 如何远程连接非默认端口SQL Server
- 关于MyEclipse和SQL server的连接
- 关于不能连接SQL server的问题
- 关于MyEclipse与SQL server 的连接
- 关于mongodb默认连接
- 在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接
- 连接到SQL Server 2005时,在默认的设置下SQL Server不允许进行远程连接
- 在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接
- 配置SQL Server 2000选项
- 配置SQL Server 2000选项
- 配置SQL Server 2000选项
- ZOJ - 3469 Food Delivery(区间DP)
- 《Objective-C基础教程》第13章 协议
- Mysql 主从
- 路由器的原理及其配置(一)
- SpringMvc参数的传递(传值)
- 关于SQL Server 默认连接选项二三事
- matlab通过摄像头获取图像进行处理
- node_modules文件夹路径太长无法删除
- Maximum Depth of Binary Tree
- C++中public,protected,private访问小结
- 欢迎使用CSDN-markdown编辑器
- String和StringBuffer的equals方法比较
- 系统函数C字符串的实现(7):wcsrev
- 路由器的原理及其配置(二)