Sql server SQL Server 2000-如何恢复连接级别设置的先前状态
我在T-SQL代码库中使用DBDeploy.NET进行更改控制管理。DBDeploy由开发人员维护一组编号的更改脚本。当触发部署(通过NAnt)时,DBDeploy会查看一个changelog表,并确定需要执行哪些修补程序来更新实例 我遇到的问题是设置创建索引视图所需的设置。QUOTED_标识符、ANSI_NULL和ARITHABORT都需要启用。是的,我可以轻松地将这些SET语句放在创建/更改索引视图的更改脚本的顶部。但是这些设置是连接级别的。如果以后我从头开始构建一个新实例呢?当我在新实例上运行DBDeploy时,这些设置将渗透到所有后续的更改脚本,因为所有更改脚本都有效地连接到要在单个连接上执行的最终SQL脚本中。更糟糕的是,诸如QUOTED_IDENTIFIER之类的解析时间选项也将应用于之前的所有更改脚本。因此:Sql server SQL Server 2000-如何恢复连接级别设置的先前状态,sql-server,tsql,sql-server-2000,dbdeploy,Sql Server,Tsql,Sql Server 2000,Dbdeploy,我在T-SQL代码库中使用DBDeploy.NET进行更改控制管理。DBDeploy由开发人员维护一组编号的更改脚本。当触发部署(通过NAnt)时,DBDeploy会查看一个changelog表,并确定需要执行哪些修补程序来更新实例 我遇到的问题是设置创建索引视图所需的设置。QUOTED_标识符、ANSI_NULL和ARITHABORT都需要启用。是的,我可以轻松地将这些SET语句放在创建/更改索引视图的更改脚本的顶部。但是这些设置是连接级别的。如果以后我从头开始构建一个新实例呢?当我在新实例上
那么可以做些什么,我应该做些什么?不幸的是,我不相信有办法获取连接中的当前设置状态 我不使用DBDeploy.NET,但这听起来确实像是该工具的一个限制。DBDeploy.NET应该在项目元数据(如在Visual Studio DB项目中)中定义它随后部署的任何数据库的SET谓词默认值 为了避免脚本之间的“出血”,它应该在将每个脚本连接到最终脚本之前,使用这些项目级默认值自动添加SET语句
拥有这种确定性方法意味着开发人员可以清楚地知道当脚本执行时,这些集合将处于什么状态。否则,脚本将受到SQL客户端连接或服务器实例中存在的各种默认值的影响。不幸的是,我不相信有办法获取连接中的当前设置状态 我不使用DBDeploy.NET,但这听起来确实像是该工具的一个限制。DBDeploy.NET应该在项目元数据(如在Visual Studio DB项目中)中定义它随后部署的任何数据库的SET谓词默认值 为了避免脚本之间的“出血”,它应该在将每个脚本连接到最终脚本之前,使用这些项目级默认值自动添加SET语句
拥有这种确定性方法意味着开发人员可以清楚地知道当脚本执行时,这些集合将处于什么状态。否则,脚本将受到SQL客户端连接或服务器实例中存在的各种默认值的影响。您也可以在处尝试此问题。您也可以在处尝试此问题。