数据库连接字符串研究.

来源:互联网 发布:sql中绝对值函数 编辑:程序博客网 时间:2024/06/06 18:01

一般在写数据库连接串的时候,

我们都用IP地址或者计算机名(Local、127.0.0.1)写好就完事了。

 

最近一段时间研究发现其实并不是那么简单的。

 

数据库有多实例场景,而在多实例的机器上如何选择正确的数据库就是个问题。

 

我们一般都是如下写法:

Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=127.0.0.1

 

我们在数据库的配置管理器中看到了数据库的协议包含

共享内存、命名管道、TCP/IP、VIA、

 

我们选择windows账号登陆又是怎么回事?

 

如果我们只写了IP+实例(计算机名+实例),后面没有其他说明。

呵呵,微软就不管哪个,只要能连上,就OK。不具体指定指定哪一个方式。

如果想查看当前使用的是那种协议,使用如下SQL语句:

SELECT net_transport FROM sys.dm_exec_connections WHERE session_id = @@SPID;

 

这个多协议我们在写好连接串后,我们能否指定一个协议呢。

 

回答是肯定的。

 

TCP/IP

Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=127.0.0.1,1234

命名管道

Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=//127.0.0.1/pipe/sql/query

共享内存

同一台计算机使用,没有可配置的属性。

从msdn上摘一段话

从运行在同一台计算机上的客户端到 Microsoft SQL Server 的连接使用共享内存协议。共享内存没有可配置的属性。始终会先尝试使用共享内存,无法将其从“客户端协议属性”列表中“启用的协议”列表的顶部位置移开。可以禁用共享内存协议,在排除其他某个协议的故障时,这样做很有用。

via

以后微软要抛弃它。

 

 

 

 

原创粉丝点击