Sql server 用于生成唯一id列的存储过程

Sql server 用于生成唯一id列的存储过程,sql-server,tsql,stored-procedures,Sql Server,Tsql,Stored Procedures,你好 我遇到的情况是,两个用户将数据保存到同一个数据库,并且存在主键冲突 是否可以编写一个存储过程或触发器,通过添加两列来生成唯一标识 例如:我用Table1ID将table2与table1关联起来。增量和种子都是1 如果我必须向表2中添加一行,我希望将自动生成的ID号添加到文本列中,从而使其唯一。因此,ID类似于JoeSoap5。如果您想生成独特的内容,可以使用内置函数。键入并执行以下代码: SELECT NEWID() 若在插入第一个表中的记录时需要在第二个表中插入记录,则可以使用来实现

你好

我遇到的情况是,两个用户将数据保存到同一个数据库,并且存在主键冲突

是否可以编写一个存储过程或触发器,通过添加两列来生成唯一标识

例如:我用Table1ID将table2与table1关联起来。增量和种子都是1


如果我必须向表2中添加一行,我希望将自动生成的ID号添加到文本列中,从而使其唯一。因此,ID类似于JoeSoap5。

如果您想生成独特的内容,可以使用内置函数。键入并执行以下代码:

SELECT NEWID() 

若在插入第一个表中的记录时需要在第二个表中插入记录,则可以使用来实现这一点。在您的情况下,您可以使用AFTER INSERT TRIGGER或BEFORE INSERT TRIGGER-通常这是一段代码,将在插入第一个表中的行之后/之前执行

您没有指定SQL Server版本


SQL 2012引入了序列的概念,它允许您做您想做的事情。

请显示您的数据库模式。你没有说你在这里使用什么作为主键。为什么不使用INT-IDENTITY并让SQL Server处理所有其他棘手的细节。。。这是迄今为止最简单的解决方案-不要试图生成自己的唯一密钥-这太混乱和容易出错了。。。。