我正在使用Windows Forms C#应用程序,需要从数据库中自动生成发票号码。为此,我需要从数据库中获取最大值,并希望在db中添加一个最大值,有什么想法吗
zysjyyx41#
您可以使用IDENTITY列来设计数据库表。数据库将为插入的行分配下一个值。您可以使用以下方法之一访问该值:SCOPE_IDENTITY、@@IDENTITY或IDENT_CURRENT。更多信息可在此处找到:MSDN-Identity。要了解SCOPE_IDENTITY和@@IDENTITY之间的区别,请参阅here。
IDENTITY
SCOPE_IDENTITY
@@IDENTITY
IDENT_CURRENT
pxy2qtax2#
使用Max(ColumnName)+ 1获取下一条记录。
Select Max(ColumnName) + 1 From TableName
这将返回下一个ID号。使用SQLCommand和executeScalar来取得这个单一值。
wgmfuz8q3#
SELECT MAX(column) FROM table
将返回'column'中的最大值。不过,您确实应该考虑对发票使用自动增量。如果您有多个用户同时插入新记录,他们可能会得到相同的发票编号。
sq1bmfud4#
使用Max(column_name)是最好的方法,另一种方法是按降序对所需列进行排序,并按顶部1对第一行进行排序。您需要验证是否没有记录/是否是第一条记录。语法:
Max(column_name)
Select top 1 Column_name from TableName Order by Column_Name desc
用法示例:
Select top 1 INV_NUMBER from TRANSACTION Order by INV_NUMBER desc
4条答案
按热度按时间zysjyyx41#
您可以使用
IDENTITY
列来设计数据库表。数据库将为插入的行分配下一个值。您可以使用以下方法之一访问该值:SCOPE_IDENTITY
、@@IDENTITY
或IDENT_CURRENT
。更多信息可在此处找到:MSDN-Identity。要了解
SCOPE_IDENTITY
和@@IDENTITY
之间的区别,请参阅here。pxy2qtax2#
使用Max(ColumnName)+ 1获取下一条记录。
这将返回下一个ID号。
使用SQLCommand和executeScalar来取得这个单一值。
wgmfuz8q3#
将返回'column'中的最大值。不过,您确实应该考虑对发票使用自动增量。如果您有多个用户同时插入新记录,他们可能会得到相同的发票编号。
sq1bmfud4#
使用
Max(column_name)
是最好的方法,另一种方法是按降序对所需列进行排序,并按顶部1对第一行进行排序。您需要验证是否没有记录/是否是第一条记录。
语法:
用法示例: