SQL Server CONVERT可以将JAVA中的空值设置为0吗?

时间:2017-11-06 08:23:47

标签: sql-server

假设我在数据库中有一个十进制列。我想从java传递一个null值并在sql中将其转换为0。我已经尝试过勾选“允许空白”#39;虽然从java传递null值但是它给出了一个错误,说'#column;列不允许空值'。 SQL Server可以自动将java null值转换为0吗?我正在使用SQL Server 2014.谢谢。

2 个答案:

答案 0 :(得分:1)

我建议添加一个INSTEAD OF INSERT Trigger:

CREATE TRIGGER IOI_MyTable ON MyTable
INSTEAD OF INSERT
AS
BEGIN
  INSERT INTO MyTable
       SELECT ISNULL(Col1, 0), ISNULL(Col2, 0), ...
       FROM inserted
END;
GO

答案 1 :(得分:0)

来自Tyron78的回答, 我使用而不是触发器来将insert语句捕获到表中,然后使用ISNULL()将null值更改为0.

但由于我的表有很多列,而且我现在没有时间把它写下来:),我不得不将数据放在临时表中并删除标识列。

 ALTER TRIGGER checkNull ON <table>
    INSTEAD OF INSERT
    AS
    BEGIN
        SELECT * INTO #tempTable FROM inserted
        UPDATE #tempTable SET <column> = ISNULL(<column>,0)
        ALTER TABLE #TempTable
        DROP COLUMN id
      INSERT INTO <table>
           SELECT *
           FROM #tempTable
    END;
    GO

但是,我会将Tyron78标记为解决方案,因为它更容易理解/可调试