데이터베이스에서 인덱싱 된 뷰를 사용하고 있습니다. 따라서 클라이언트는 세션 연결 설정을 호출해야합니다. 나는 ado.net 연결, 저장 프로 시저를 호출하는 명령을 사용하고 있습니다. 저장 프로 시저를 호출해야 할 때마다 연결을 만듭니다 (연결 풀에서이 작업을 신속하게 수행 할 수 있기를 바랍니다). 그리고이 설정을 현재 연결에 적용하는 명령을 실행합니다.인덱싱 된 뷰를 지원하는 세션 설정
// some code to create a new connection
//...
//...
if (connection.State != ConnectionState.Open)
{
connection.Open();
}
using (var cmd = connection.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText =
@"
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET QUOTED_IDENTIFIER ON
SET NUMERIC_ROUNDABORT OFF";
cmd.ExecuteNonQuery();
}
다른 생각 : 저장 프로 시저의 모든 호출하기 전에 이러한 설정을 추가 :
command.CommandText = 'SET....';
command.CommandText += ' EXEC MyStroredProc @...';
이 솔루션은 몇 가지 성능 문제가 발생 그렇지?
매번 새로운 연결을 만들어야하는 경우 어떻게해야 추가 작업을 피할 수 있습니까? 이 설정을 자동으로 적용하는 방법은 무엇입니까?
해결책 :
ALTER DATABASE [MyDB]
SET
ANSI_NULLS ON,
ANSI_PADDING ON,
ANSI_WARNINGS ON,
ARITHABORT ON,
CONCAT_NULL_YIELDS_NULL ON,
QUOTED_IDENTIFIER ON,
NUMERIC_ROUNDABORT OFF
당신이 SQL 서버의 버전은 무엇을해야합니까를? – VMAtm
@VMAtm 태그가 추가되었습니다. – garik