我的页面银行转帐包含我的asp.net应用程序中的“转移号码”列。这是一个自动生成的列。我根据查询获取此值:
IF (SELECT COUNT(1) FROM tableName) = 0
SELECT IDENT_CURRENT('tableName')
ELSE
SELECT IDENT_CURRENT('tableName') + 1
问题是当两个用户登录时,它显示该页面的相同转移号码。在插入记录之前,如何为不同用户显示不同的转移号码?
感谢。
答案 0 :(得分:1)
将列设置为identity并且将自动生成值,并且在插入之后,您可以从变量@@ identity获取插入的id。喜欢这个
表格设计
CREATE TABLE YourTable
(
SeqNo INT IDENTITY(1,1) PRIMARY KEY,
Col1 VARCHAR(50),
Col2 INT,
...
)
我已将SeqNo列设置为Identity和Primary key。
Identity(1,1)表示第一个值为1,然后对于每一行,增量将为+1,依此类推。
现在我在表格中插入一条记录
INSERT INTO YourTable(Col1,Col2)
values('abc',1)
select @@identity
现在插入后,第二个选择将返回值1,因为身份字段的值为1.
如果我再跑一次,我会得到2,依此类推
您也可以调用系统定义的函数SCOPE_IDENTITY()(如果涉及触发器),而不是@@ IDENTITY
您可以避免使用此冲突,因为值是由数据库本身生成的