2013-07-17 3 views
0

레거시 앱은 스페인어 형식 (dd-mm-yyyy) 을 사용하여 날짜가 포함 된 sql 삽입 쿼리를 전송합니다. 삽입하기 전에 트리거를 사용하여 영어 형식 (mm-dd-yyyy)으로 변경해야합니다. 어떻게하면 되나요? 내 데이터베이스는 SQL Server 2000입니다.삽입 전 트리거

답변

0

트리거를 사용하는 대신 응용 프로그램에서 사용하는 로그인의 언어 속성을 적절한 로캘로 변경하십시오.

enter image description here

예 :

SET LANGUAGE ENGLISH 
-- Query: 
SELECT CONVERT(DATETIME, '9/6/91') 
-- Result: 
-- 1991-09-06 00:00:00.000 
GO 

SET LANGUAGE SPANISH 
-- Query: 
SELECT CONVERT(DATETIME, '9/6/91') 
-- Result: 
-- 1991-06-09 00:00:00.000 

편집 : SQL 서버 2000, 구성에 대한 BOL Page를 참조하십시오. LANGUAGE 옵션은 also be set in ODBC 일 수 있습니다.

+0

미안하지만 구성을 변경할 수 없습니다. 트리거를 사용하는 솔루션이 필요합니다. – sebagiar

+1

@sebagiar, 가장 가까운 사용자는 'INSERT'트리거 (http://msdn.microsoft.com/en-us/library/ms175089(v=sql.105).aspx 참조)이지만 그 시점에서 데이터 유형을 변경해야합니다. 'varchar'에서'datetime'으로의 변환은 이미 일어 났을 것이고, 당신은 지난 12 일 어느 달에도 그 월을 넘치게 될 것입니다. – Mitch

+0

@sebagiar, 이전 테이블과 같은 이름으로 뷰를 만들 수 있다고 가정합니다. 'varchar','SET DATEFORMAT mdy'에 대해'datetime' 칼럼을 만들고'varchar'에서'datetime'으로 캐스팅합니다 ... 그러나 yuck. 구성을 변경할 수없는 이유가 있습니까? 그것을 바꿀 수있는 곳이 많이 있습니다 ... – Mitch