我正在尝试创建一个表,其中所有列都应自动替换空值,即''为NULL。
这是我的表创建脚本
create table #test
(
firstname varchar(50),
lastname varchar(50)
)
INSERT INTO #test select ' ', ' '
虽然我使用带有空值的insert脚本,但我想在插入表时将其替换为NULL值。
在创建表脚本本身时是否有任何想法实现此逻辑? 任何帮助将不胜感激。
答案 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