自动修剪数据库条目?

1 sql database database-design

是否可以编辑表定义以在输入时自动修剪所有尾随空格的条目?

或者这会更有效/更容易/通常在代码提交条目?

And*_*rew 7

如果您在SQL Server中工作,您可以自动执行此操作,但只有在您确定且经过适当考虑时才应该这样做.ANSI_PADDING在SQL中决定是否修剪正在插入的值的尾部空格.该设置在创建表时应用,之后不会更改,并且该设置适用于varchar,但不适用于nvarchar.

显示差异的测试脚本如下:

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
Run Code Online (Sandbox Code Playgroud)

在第一个表上,数据长度自插入空格后返回10,在第二个示例中,它们在插入时被修剪.

我个人更喜欢代码控制需要完成的工作,而不是将其留给设置,但我包含的示例表明,如果需要,可以在数据库级别完成.