创建表脚本

时间:2016-03-04 04:28:18

标签: sql-server sql-server-2012

我正在尝试创建一个表,其中所有列都应自动替换空值,即''为NULL。

这是我的表创建脚本

create table #test
(
firstname varchar(50),
lastname varchar(50)
)
INSERT INTO #test select ' ', ' '

虽然我使用带有空值的insert脚本,但我想在插入表时将其替换为NULL值。

在创建表脚本本身时是否有任何想法实现此逻辑? 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我猜您正在寻找default关键字:

create table #test (
    firstname varchar(50) not null default '',
    lastname varchar(50) not null default ''
);

not null是可选的。因此,如果您没有提供值(或者如果您在插入中使用default关键字),那么您将获得默认值。

答案 1 :(得分:0)

这是触发码。

create table test (
firstname varchar(50)   ,
lastname varchar(50));

INSERT INTO test select ' ', ' '

CREATE TRIGGER trgUpdateDesc
ON test 
INSTEAD OF INSERT
AS 
BEGIN
SET NOCOUNT ON;
    INSERT INTO test (firstname, lastname)
    SELECT case when firstname = ' ' then null else firstname end, case when lastname = ' ' then null else lastname end FROM inserted
END 

select * from test