gpt4 book ai didi

sql-server - 设置选项....它们存储在哪里

转载 作者:行者123 更新时间:2023-12-03 17:15:18 24 4
gpt4 key购买 nike

快速问题...

数据库中存储的 SP、Func、触发器等的 SET OPTIONS 值在哪里?如果它们与全局设置不同?

开启 ARITHABORT
设置 CONCAT_NULL_YIELDS_NULL ON
设置 QUOTED_IDENTIFIER ON
设置 ANSI_NULLS ON
设置 ANSI_PADDING ON
设置 ANSI_WARNINGS ON
设置 NUMERIC_ROUNDABORT 关闭

我知道数据库的全局设置存储在 sys.databases View 中。但是对于每个 Stored Proc 或其他对象呢?

使用 [SomeDB]


关闭 ARITHABORT
设置 CONCAT_NULL_YIELDS_NULL 关闭
SET QUOTED_IDENTIFIER 关闭


创建 usp_SampleProc
作为
开始
-- 执行一些操作
结尾

我看到可以使用以下方法检索一对夫妇:

SELECT OBJECTPROPERTY(OBJECT_ID('Procedure_Name'), 'ExecIsQuotedIdentOn')
SELECT OBJECTPROPERTY(OBJECT_ID('Procedure_Name'),'ExecIsAnsiNullsOn')

其余的……它们甚至存储在每个存储过程中……到底在哪里?
谢谢,
_Ub

最佳答案

那些适用于程序的,如 ANSI_NULLSQUOTED_IDENTIFIER sys.sql_module s ,它们是从 OBJECTPROPERTY 中检索的.

适用于数据库并按数据库设置的那些可在 sys.databases 中找到。 .

那些适用于 session 的可在 sys.dm_exec_sessions 中找到。 .

最后,实际应用的内容取决于设置,并且至少可以说覆盖和默认值的规则很复杂。一些客户端驱动程序自动设置选项开/关。不同的选项和不同的默认值取决于客户端(ODBC、OleDB、SNAC、SqlClient 等)。 generic rule是:

  • 数据库选项会覆盖实例选项。
  • SET 选项会覆盖数据库选项。
  • 提示会覆盖 SET 选项。
  • 关于sql-server - 设置选项....它们存储在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1269070/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com