SQL使用Trigger to Function更新表中的列

时间:2017-03-30 14:29:14

标签: sql sql-server

我正在尝试在将新文档添加到sql表时自动生成文档引用号 - 引用号是该表中某些其他字段的连接。

在线查看我可以看到一种方法是使用dbid函数生成一个uid然后创建一个函数来连接,然后在insert上的表上触发器来填充列,但是我花了很多时间而且我不能得到它起作用。

该表格包含以下列: -

Table:-     dbo.codeallocations21322        

Columns :-
Dbid        
Projectcode 
Type        
Discipline]     
Hdlreference

因此hdlreference列将填充: -

[projectcode]-[type]-[discipline]-[bdid] 

将[bdid]设置为6个字符。

例如21322-rfq-mech-000001 任何帮助都会非常感激/建议更好的方式吗?

非常感谢提前。

2 个答案:

答案 0 :(得分:1)

您可以使用computed column

alter table codeallocations21322
  add hdlreference 
      as ( projectcode  + '-' + type + '-' + discipline + '-' + dbid);

答案 1 :(得分:0)

非常感谢John - 略微改变了将Int dbID转换为varchar并且效果很好: -

alter table CodeAllocations21322

  add hdlreference2

    as (ProjectCode  + '-' + Type + '-' + Discipline + '-' + right('00000' + Cast (dbID AS varchar(5)), 5));

再次感谢,期待将来与您交谈。