2017-07-16 27 views
1

我有一个从webform中记录数据并将其插入到表中的插入。我想我的插入读取先前的插入和查找所有null领域和更新该记录的null领域与--用于读取空字段并使用字符串值更新的SQL函数

的数据类型为我所有领域的字符串为varchar

后立即运行的更新

我有20 +形式每个有超过100个字段,所以我正在寻找一个功能,将足够聪明来读取/更新具有null值的字段,而无需专门列举/写出更新语句的每个字段。这只会花费太长时间。

有谁知道的方式来简单地读取该领域具有null值和更新是null为一个字符串,在我的情况--

+1

插入后您可以尝试更改表格结构,而不是更新。将列的默认值设置为'--'。如果插入没有提供值,则会自动插入'--'。 – Varun

+0

如果你不想要空值,为什么不能在插入期间改变这个值 – TheGameiswar

+0

@वरुण这是可以通过SQL Management Studio设置的东西吗? – UserSN

回答

1

而不是去更新后插入您可以尝试更改表结构。

将列的默认值设置为 - 。如果在插入时没有提供值, - 将自动插入。

2

任何领域,如果你不能改变你现有的代码,我会去与插入触发器...所以每次插入后,您可以检查,看空值和更新它们像下面

create trigger triggername 
on table 
after insert 
as 
begin 

    update t 
    set t.col1=isnull(i.col1,'--'), 
     t.col2=isnull(i.col2,'--') 
    rest of cols 
    from table t 
     join 
     inserted i 
    on i.matchingcol=t.mtachingcol 
    end 

与上述方法的问题是,你必须检查所有插入的rows..I会只使用这种方法,因为用许多过滤许多列项条款不利于性能

如果是只用于显示目的,我会视

+0

我刚刚发现,当列为空时,您可以将默认值归因于似乎是最快的方式,但很高兴知道我可以使用触发器来执行相同的操作。唯一的下降与这是我将不得不枚举所有我的列在上面的代码100 + x 20 + foms这是我试图找到最快的方式的原因。谢谢 – UserSN

+1

好,很高兴你找到答案 – TheGameiswar

相关问题