2009-10-15 4 views
1

테이블 정의를 편집하여 입력 할 때 후행 공백의 항목을 자동으로 다듬을 수 있습니까?자동 트림 데이터베이스 항목?

또는이 코드를 더 효율적으로/쉽게/정상적으로 항목을 제출 befeore에서 할 것이라고 ??

답변

7

SQL Server에서 작업하는 경우이 작업을 자동으로 수행 할 수 있지만 확실하고 적절한 고려 사항이있는 경우 실제로이 작업을 수행해야합니다. ANSI_PADDING은 SQL에서 삽입되는 값의 후행 공백을 잘라내는지 여부를 결정합니다. 이 설정은 테이블을 만들 때 적용되며 변경되지 않고 varchar에서는 작동하지만 nvarchar에서는 작동하지 않습니다. 공백이 삽입 된 이후 10 데이터 길이 리턴 번째 예에서 그들이 삽입에 트리밍 된 제 테이블

set ansi_padding on 
create table foo (myID int identity, myString varchar(50)) 
insert into foo values ('abcd  ') 
select datalength(mystring) from foo 

drop table foo 
set ansi_padding off 
create table foo (myID int identity, myString varchar(50)) 
insert into foo values ('abcd  ') 
select datalength(mystring) from foo 

다음과 같이 차분을 보여

테스트 스크립트이다.

필자는 설정에 맡기는 대신 필요한 작업을 제어하는 ​​코드를 개인적으로 선호하지만 필요할 경우 DB 수준에서 수행 할 수 있음을 보여주는 예제를 포함했습니다.

+0

고마워, 나는 아마 코드에서 그렇게 할 것이지만, 더 쉽고 효율적으로 다른 방법으로 할 수 있는지 궁금해하거나 관심이있다. –

2

사용중인 데이터베이스 소프트웨어에 따라 trigger을 사용할 수 있습니다.

0

트리거 대신 INSTEAD OF INSERT 섹션을 사용할 수 있습니다. INSERT 대신 INSTEAD OF INSERT를 사용하면 값을 잘라서 삽입 할 수 있습니다. 고유 한 인덱스로 필드를 지정하면 인덱스 값이 중복되어 예외가 발생합니다.