Mar*_*lli 5 sql-server ssms execution-plan sql-server-2008-r2 configuration
Management Studio 中的选项
在 Management Studio Tools->Options->Query Execution->SQL Server 上设置了一些选项,这些选项优先于在数据库级别设置的相同选项。
数据库级别的选项
在管理工作室,您右键单击一个数据库,您可以看到许多选项的默认值:(下图中的黄色部分)
使用sys.databases您可以使用 T_SQL 获取这些选项。
会话级别的选项
使用sys.dm_exec_sessions您可以掌握为当前会话设置的选项。
问题
有没有办法确保数据库设置优先于管理工作室设置?
我想过创建一个计划,并使用OPTION(使用计划), 但这会产生超出本问题范围的其他后果。
Dav*_*ett 10
如果您问是否可以为服务器上发生的每个连接强制执行数据库默认值,那么不能。这些默认值仅在连接级别未设置矛盾的情况下才生效。
在SSMS任何个别批次可以使用类似的语句SET ANSI_NULLS ON,SET ANSI_NULLS OFF,SET QUOTED_IDENTIFIER ON,等,以控制下面的语句的解释方式。
对于存储过程,它稍微复杂一些:
创建过程时,它会记住ANSI_NULLS和QUOTED_IDENTIFIER选项的当前值,并在对该过程的任何调用中使用它们,但对于其他设置(例如ARITHABORT和 ),情况并非如此ANSI_PADDINGS- 对于那些你需要SET <setting> ON/OFF在程序中使用来修复行为。有关这种情况的更多描述,请参阅产品文档中 CREATE PROCEDURE (Transact-SQL)的互操作性部分。