如何链接到Sql Server 2005

来源:互联网 发布:淘宝卖家红包 编辑:程序博客网 时间:2024/05/01 07:11

SQL Server 2005

本篇介绍如何链接到Sql Server 2005.

采用SQL 本地客户 ODBC驱动

采用Sql身份验证
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

你正在使用SQL Server 2005 Express?别忘记了,Servername的语法是Servername/SQLEXPRESS,你可以用你安装SQL Server 2005 Express的那台机器的机器名替代掉Servername

采用windows身份验证
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;

在上面的语法中,"Integrated Security=SSPI" 和 "Trusted_Connection=yes"是等效的。

关于输入用户和密码的提示:

首先,你必须设置链接对象的提示属性为"adPromptAlways",然后再使用链接字串链接到数据库。

oConn.Properties("Prompt") = adPromptAlways

Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;
允许MARS(多个活动结果集)
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;MARS_Connection=yes

在上面的语法中, "MultipleActiveResultSets=true" 和 "MARS_Connection=yes" 是等效的 。

要使用MARS功能,必须安装ADO.net 2.0,Ado.net 1.0和Ado.net 1.1不支持MARS。

采用加密方式发送到网络
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;Encrypt=yes;
附加数据库文件至一个本地Sql Server Express实例
Driver={SQL Native Client};Server=./SQLExpress;AttachDbFilename=c:/asd/qwe/mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;

为什么需要Database参数?如果这个数据库名已被附加过,Sql Server Express不会再次附加这个数据库,它将使用原附加的数据库来建立链接。

数据库镜像

如果你采用Ado.net或Sql本地验证方式链接到一个作为镜像的数据库,当一个镜像数据库出现错误的时候,你的应用程序能够采用有利的驱动自动转向链接。你必须链接字串中指定最初的首要服务器和数据库和故障恢复服务器。

Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;

这里可以有许多种链接字串的书写方式来链接数据库镜像。这只是一个指出故障恢复服务器的例子,你可以和其他链接方式组合在一起使用。


采用OLE DB方式驱动

采用Sql身份验证
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

你正在使用SQL Server 2005 Express?别忘记了,Servername的语法是Servername/SQLEXPRESS,你可以用你安装SQL Server 2005 Express的那台机器的机器名替代掉Servername

采用windows身份验证
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;

在上面的语法中,"Integrated Security=SSPI" 和 "Trusted_Connection=yes"是等效的。

关于输入用户和密码的提示:

首先,你必须设置链接对象的提示属性为"adPromptAlways",然后再使用链接字串链接到数据库。

oConn.Properties("Prompt") = adPromptAlways

oConn.Open "Provider=SQLNCLI;Server=myServerAddress;DataBase=myDataBase;
允许MARS(多个活动结果集)
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;MarsConn=yes;

在上面的语法中, "MultipleActiveResultSets=true" 和 "MARS_Connection=yes" 是等效的 。

译者注:原文中语法示例用了MarsConn而在上行的说明中却用的是MARS_Connection,showlin自己也没有用过.net 2.0的这个新特性,希望知道的兄弟改正。

要使用MARS功能,必须安装ADO.net 2.0,Ado.net 1.0和Ado.net 1.1不支持MARS。

采用加密方式发送到网络
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;Encrypt=yes;
附加数据库文件至一个本地Sql Server Express实例
Provider=SQLNCLI;Server=./SQLExpress;AttachDbFilename=c:/asd/qwe/mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;

为什么需要Database参数?如果这个数据库名已被附加过,Sql Server Express不会再次附加这个数据库,它将使用原附加的数据库来建立链接。

附加数据库,定位数据目录,链接到本地Sql Server Express
Provider=SQLNCLI;Server=./SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;

为什么需要Database参数?如果这个数据库名已被附加过,Sql Server Express不会再次附加这个数据库,它将使用原附加的数据库来建立链接。

数据库镜像

如果你采用Ado.net或Sql本地验证方式链接到一个作为镜像的数据库,当一个镜像数据库出现错误的时候,你的应用程序能够采用有利的驱动自动转向链接。你必须链接字串中指定最初的首要服务器和数据库和故障恢复服务器。

Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;

这里可以有许多种链接字串的书写方式来链接数据库镜像。这只是一个指出故障恢复服务器的例子,你可以和其他链接方式组合在一起使用。


Sql Connect (.Net)

采用Sql身份验证
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

采用serverName/instanceName 这样的方式作为数据源链接到一个指定的Sql Server实例。

你正在使用SQL Server 2005 Express?别忘记了,Servername的语法是Servername/SQLEXPRESS,你可以用你安装SQL Server 2005 Express的那台机器的机器名替代掉Servername。

Sql身份验证可选择的语法

Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

这个链接串和之前的那个具有相同的结果,原因是一些链接字串的关键字有许多等效的替代写法。

采用windows身份验证
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

window身份验证可选择的语法

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

这个链接串和之前的那个具有相同的结果,原因是一些链接字串的关键字有许多等效的替代写法。

通过一个IP地址链接
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;

DBMSSOCN就是TCP/IP。这指明了如何使用TCP/IP代替命名管道。在Data Souce的结尾部分是采用的端口号,Sql Server的缺省端口是1433。

允许MARS(多个活动结果集)
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;MultipleActiveResultSets=true;

要使用MARS功能,必须安装ADO.net 2.0,Ado.net 1.0和Ado.net 1.1不支持MARS。

附加数据库文件至一个本地Sql Server Express实例
Server=./SQLExpress;AttachDbFilename=c:/asd/qwe/mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;

为什么需要Database参数?如果这个数据库名已被附加过,Sql Server Express不会再次附加这个数据库,它将使用原附加的数据库来建立链接。

附加数据库,定位数据目录,链接到本地Sql Server Express
Server=./SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;

为什么需要Database参数?如果这个数据库名已被附加过,Sql Server Express不会再次附加这个数据库,它将使用原附加的数据库来建立链接。

使用用户本地Sql Server Express附加实例

The User Instance functionality creates a new SQL Server instance on the fly during connect. 它仅仅工作在一个本地Sql Server 2005实例上,并且通过(local)命名管道windows验证连接。目的是为了能将完全的Sql Server权限赋予一个在计算机上拥有不完全管理权限的用户。

译者注:上面这句不知道该如何去翻译,按showlin自己的理解,这实际上是.net 2.0支持的本地数据库的概念,它将App_data下的Mdf数据库自动附加到Sql Server Express,User Instance=true时,SQL Server Express为了把数据库附加到新的实例,建立一个新的进程,在打开连接的用户身份下运行。 一般情况下,这个用户是ASP.NET或是Network service,按这种方式,意味着本地数据库的链接方式最好只在开发时使用,当然如果你拥有自己的专有服务器例外。

Data Source=./SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|/mydb.mdf;User Instance=true;

为了使用这个功能你必须在SQL Server上打开它。运行下面的命令:excute sp_configure 'user instances enabled', '1'. 竟用这个功能的命令是excute sp_configure 'user instances enabled', '0'.

数据库镜像

如果你采用Ado.net或Sql本地验证方式链接到一个作为镜像的数据库,当一个镜像数据库出现错误的时候,你的应用程序能够采用有利的驱动自动转向链接。你必须链接字串中指定最初的首要服务器和数据库和故障恢复服务器。

Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;

这里可以有许多种链接字串的书写方式来链接数据库镜像。这只是一个指出故障恢复服务器的例子,你可以和其他链接方式组合在一起使用。

异步处理

连接至Sql Server 2005允许通过采用ADO.net对象发送异步传输。

Server=myServerAddress;Database=myDataBase;Integrated Security=True;Asynchronous Processing=True;

Sql Server 2005 特有的

上下文链接(执行环境链接)

从CLR内部调用中取得链接到“自己”。The context connection lets you execute Transact-SQL statements in the same context (connection) that your code was invoked in the first place.

译者注:这个...... showlin现在实在不会,看看《Sql Server 2005开发详解》中的解释吧。

“让我们所编写的程序取得对程序集实例被 SQL Server 外部的前端应用程序调用时,该应用程序所在的数据库连接相关设置。这些连接设置并不是由我们用 .NET 所编写的存储过程或用户自定义函数的对象决定的,被调用的数据库内部对象需要与外部应用程序使用相同的连接环境。可以用以下的程序通过连接字符串设置如下,而通过这条连接再执行其他的 SQL 语法”