3

SqlDependency을 사용하여 특정 데이터베이스 테이블의 변경 사항을 알리는 메커니즘을 구현했습니다.QUOTED_IDENTIFIER를 전역으로 구현

그러나 이것은 SqlDependency를 구현 한 데이터베이스 테이블을 업데이트하는 기존 기능을 손상시킵니다.

UPDATE failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.

이 "sqldependency-causes-error-in-other-application"유사합니다

나는 다음과 같은 오류를 받고 있어요.

테이블에 대한 업데이트를 수행하는 proc 파일이 QUOTED_IDENTIFIER가 OFF로 설정되어있는 것으로 확인되었습니다. 이것이 문제의 정확한 원인입니다.

"SET QUOTED_IDENTIFIER ON"으로 변경하면 모든 것이 완벽하게 작동합니다. 그러나 모든 procs를 검색해야하고이를 변경해야하기 때문에 이것은 실현 가능한 해결책이 아닙니다.

알고 싶은 것은 응용 프로그램의 코드에서 proc을 실행하기 전에 매번 "SET QUOTED_IDENTIFIER ON"을 호출하는 일반적인 방법입니다.

내 응용 프로그램은 ASP.Net 4 웹 응용 프로그램이고 데이터베이스 작업 수행을 위해 Microsoft Enterprise Library 5.0을 사용하고 있습니다. 은에서 나는 다음과 같은 구성 요소를 사용하고 있습니다 : Microsoft.Practices.EnterpriseLibrary.Data.Database

SqlDependency에 대한 모든 대체 솔루션도 환영합니다.

[편집] 또한 SQL Server 2008에서 직접 프로세스를 변경하지 않고 QUOTED_IDENTIFIER를 true로 설정하는 직접적인 방법이 있습니다. 내가 생각하는 것은 QUOTED_IDENTIFIER를 (sp_depends를 사용하여) 해당 테이블에 종속 된 모든 객체에 설정하는 스크립트를 작성하는 것입니다.

+0

"내 proc가 응용 프로그램의 코드에서 실행되기 전에 매번 SET QUOTED_IDENTIFIER ON을 호출하십시오." - 그건 네가 원하는게 아닌 ** **. 저장된 프로 시저를 변경해야한다는 것을 올바르게 확인했습니다 : "저장 프로 시저가 생성되면 [SET QUOTED_IDENTIFIER'] (http://msdn.microsoft.com/en-us/library/ms174393.aspx) 및 SET ANSI_NULLS 설정이 캡처되고 해당 저장 프로 시저의 후속 호출에 사용됩니다. –

+0

[유사한 질문] (http://stackoverflow.com/questions/2147489/change-the-ansi-nulls-setting-for-all) 저장된 프로 시저 quoted_identifier 설정 "을 검색하여 찾은) ANSI_NULLS를 변경하고자하는 사람이 저장 한 데이터베이스에서 프로 시저를 저장합니다. –

+0

Damien에게 감사드립니다. 위의 의견을 대답으로 게시하십시오. 나는 그것을 표시하고이 질문을 닫을 것입니다. – Adi

답변

0

아직도 찾고 있다면 다른 방법이 있습니다. 그러나 가장 자체적으로 문서화하는 것은 아닙니다.

EXEC sys.sp_configure N'user options', N'256' 
GO 
RECONFIGURE WITH OVERRIDE 
GO 

이것은 당신이 데이터베이스를 마우스 오른쪽 단추로 클릭하고 속성, 연결로 이동 한 다음 목록에서 인용 식별자를 선택하면 SSMS가하는 일입니다. SQL Server는 모든 수신 연결에 대해 따옴표 붙은 식별자 옵션을 on으로 설정합니다.

관련 문제