用于生成唯一ID列的存储过程

时间:2012-11-16 07:15:55

标签: sql-server tsql stored-procedures

美好的一天

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

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

例如:我table2table1 Table1ID相关table2。两者的增量和种子都是1。

如果我必须向JoeSoap5添加一行,我希望将自动生成的ID号添加到文本列中,从而使其唯一。所以ID就像{{1}}。

2 个答案:

答案 0 :(得分:0)

如果要生成独特的内容,可以使用内置函数“NEWID()”。输入并执行以下代码:

SELECT NEWID() 

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

答案 1 :(得分:0)

您没有指定SQL Server版本。

SQL 2012引入了序列的概念 - http://msdn.microsoft.com/en-us/library/ff878091.aspx - 这将允许您按照自己的意愿执行。