SQL Server:当参数为null时,为Insert Into query设置默认值

时间:2013-02-19 20:41:55

标签: sql sql-server-2005 ibatis

我正在尝试执行如下的插入查询:

Insert Into table1 (column1, column2)
Values (#value1#, #value2#)

但是,我想说,当参数2/19/2013为空时,我想将column2默认为#value2#。我怎么做到这一点?

我正在使用Ibatis框架,而insert语句位于XML文件中,该文件用于从控制器调用的db文件中。

2 个答案:

答案 0 :(得分:2)

这可能是您正在寻找的内容:

ISNULL(#value2#,'2/19/2013')

答案 1 :(得分:2)

如果无法更改来自XML文件的插入语句,则可以考虑创建触发器

CREATE TRIGGER table1_Insert ON table1
INSTEAD OF INSERT
AS
INSERT INTO table1 (column1, column2)
    SELECT column1, ISNULL(column2,'2/19/2013') FROM INSERTED;

然后如果尝试插入NULL

INSERT INTO table1 VALUES (1, NULL);

你会有

| COLUMN1 |   COLUMN2 |
-----------------------
|       1 | 2/19/2013 |

这是 sqlfiddle