有没有办法识别是否使用SET QUOTED_IDENTIFIER打开或关闭对象? (不仅是这个设置选项,我还在寻找一个脚本来识别与该对象相关的所有ANSI设置)
我在单个表(获得索引视图)上得到了SET QUOTED_IDENTIFIER错误。我已经验证了所有设置,脚本都很好。并且它使用正确的设置完美创建。
在应用了一些数据库修复程序(不是我们的脚本)后,它会突然发出错误。
注意:抱歉打开一个新主题,我得到任何可能的解决方案到我的第一个link - 1主题,认为它已经死了
答案 0 :(得分:2)
对于代码和检查约束:
SELECT
OBJECTPROPERTYEX (OBJECT_ID('MyProc'), 'ExecIsQuotedIdentOn')
OBJECTPROPERTYEX (OBJECT_ID('MyCK'), 'IsQuotedIdentOn')
我在系统视图或函数中找不到表/索引的任何内容。
答案 1 :(得分:0)
select
'Object created with dangerous SET Option' [Finding]
,o.[type_desc] [Type]
,QUOTENAME( SCHEMA_NAME( o.[schema_id] ) ) [Schema]
,QUOTENAME( OBJECT_NAME( sm.[object_id] ) ) [Name]
,sm.[uses_ansi_nulls] [ANSI NULL]
,sm.[uses_quoted_identifier] [QUOTED]
,sm.[definition]
from [sys].[sql_modules] sm
join [sys].[objects] o on o.[object_id] = sm.[object_id]
and (
sm.[uses_ansi_nulls] != 1
or sm.[uses_quoted_identifier] != 1
)
and o.[is_ms_shipped] = 0;