Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL使用函数触发器更新表中的列_Sql_Sql Server - Fatal编程技术网

SQL使用函数触发器更新表中的列

SQL使用函数触发器更新表中的列,sql,sql-server,Sql,Sql Server,当一个新文档被添加到一个sql表中时,我试图自动生成一个文档引用号——引用号是该表中一些其他字段的组合 从网上看,我可以看到一种方法是使用dbid函数生成uid,然后创建一个concatonate函数,然后在insert时在表上创建一个触发器来填充列,但是我花了很多时间,我无法让它工作 该表包含以下列:- Table:- dbo.codeallocations21322 Columns :- Dbid Projectcode Type

当一个新文档被添加到一个sql表中时,我试图自动生成一个文档引用号——引用号是该表中一些其他字段的组合

从网上看,我可以看到一种方法是使用dbid函数生成uid,然后创建一个concatonate函数,然后在insert时在表上创建一个触发器来填充列,但是我花了很多时间,我无法让它工作

该表包含以下列:-

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));