SQL使用函数触发器更新表中的列
当一个新文档被添加到一个sql表中时,我试图自动生成一个文档引用号——引用号是该表中一些其他字段的组合 从网上看,我可以看到一种方法是使用dbid函数生成uid,然后创建一个concatonate函数,然后在insert时在表上创建一个触发器来填充列,但是我花了很多时间,我无法让它工作 该表包含以下列:-SQL使用函数触发器更新表中的列,sql,sql-server,Sql,Sql Server,当一个新文档被添加到一个sql表中时,我试图自动生成一个文档引用号——引用号是该表中一些其他字段的组合 从网上看,我可以看到一种方法是使用dbid函数生成uid,然后创建一个concatonate函数,然后在insert时在表上创建一个触发器来填充列,但是我花了很多时间,我无法让它工作 该表包含以下列:- Table:- dbo.codeallocations21322 Columns :- Dbid Projectcode Type
Table:- dbo.codeallocations21322
Columns :-
Dbid
Projectcode
Type
Discipline]
Hdlreference
因此,hdlreference列将填充以下内容:-
[projectcode]-[type]-[discipline]-[bdid]
[bdid]设置为6个字符
例如21322-rfq-mech-000001
如有任何帮助/建议更好的方法,将不胜感激
非常感谢。您可以使用
非常感谢John-稍作修改,将Int-dbID转换为varchar,效果非常好:-
alter table CodeAllocations21322
add hdlreference2
as (ProjectCode + '-' + Type + '-' + Discipline + '-' + right('00000' + Cast (dbID AS varchar(5)), 5));
再次感谢您,期待将来与您交谈。糟糕的语法是一种错误吗?我认为SQL Server是因为
dbo。
。请在Futuratanks中标记您的DBMS,以获取反馈@JohnHC-将听取您的建议,第一篇文章。干杯。非常感谢@JohnHC的回答-稍微修改一下,将dbID转换为Varchar:-
alter table CodeAllocations21322
add hdlreference2
as (ProjectCode + '-' + Type + '-' + Discipline + '-' + right('00000' + Cast (dbID AS varchar(5)), 5));