SQL Server:在2个差异表

时间:2015-10-29 23:03:43

标签: sql-server database calculated-columns

我制作的程序有两个不同的表格(更多,但那些是我遇到的问题)。一个叫做SYNPaymentHistory,另一个叫做OTHERSPaymentHistory

它们具有几乎相同的列,除了SYNPaymentHistory包含" ID"每个辛迪加的号码。其他人的表格适用于公司从Syndicates获得的任何随机付款

我创建了一个页面,其中一个人填写了付款申请表,完成所有操作后,它应该打印出收据。收据有一个SerialNb,它是在两个表中找到的列(它是一个INT列,其标识规范在每次输入时增加1)。

我的问题是我希望SerialNb在它们之间同步。

例如:说我刚刚从Syndicate填写了一个付款申请,收据顶部的SerialNb应该说5001.如果我想填写公司所获得的门票的付款申请一方,我希望收据的SerialNb为5002。

是否有某种方法可以链接来自2个不同表的2列?我认为WHILE循环可以解决问题,如果其中一个自动增加1,另一个有WHILE循环,如果i = SYNHistoryPayment.SerialNb,则i = i + 1 (我正在OTHERSHistoryPayment)但它不会以其他方式解决,因为SYNHistoryPayment最终不会关心OTHERSHistoryPayment的价值。

它是否以任何可能的方式与图表相关?我无法正确理解图表的使用情况,因此我希望这不是解决问题的方法。

如果您需要任何其他信息,我很乐意在所需信息中修改。

使用的程序: Visual Studio 2015, SQL Server Management Studio 2014

1 个答案:

答案 0 :(得分:1)

SQL Server具有解决此问题的功能。它被称为序列。您可以创建一个序列,并且您可以随时使用sql server为您提供序列中的下一个值。保证每个请求都有不断增加的顺序。

创建一个序列 - 当你想在任一个表中创建一行时,从序列中获取下一个值并使用它。

除了使用序列解决问题之外,还解决了同时运行的应用程序的多个实例的问题。您不必担心 - 应用程序的每个实例都会获得它自己的编号。

https://msdn.microsoft.com/en-us/library/ff878091.aspx