我有一个我在PHP中使用的语句,如果它存在,则会提取一个数字,如果不存在,它将创建一行,然后从创建的行中提取数字。
以下代码有效,但正如标题所说......不是第二次。首先让我澄清一下,如果行存在,它每次都有效。但是当创建一行并返回数字时,下一次(再次使用新变量)将失败,但随后(再次使用相同的新变量)将在下次正常工作。这在php和sql环境中都是如此。
SELECT id FROM table1 WHERE authID = 'DOEJON' AND periodID = 55
IF @@ROWCOUNT = 0 INSERT INTO table1 (authID, periodID) VALUES ('DOEJON', 55);
SELECT id FROM table1 WHERE timeID = SCOPE_IDENTITY()
似乎有某种与声明有关的更新 - 我怎样才能每次获得所需的结果?想法?
感谢您的关注。
答案 0 :(得分:1)
尝试下面
Declare @ID Int
SELECT @ID = id FROM table1 WHERE authID = 'DOEJON' AND periodID = 55
If (id is null)
Begin
INSERT INTO table1 (authID, periodID) VALUES ('DOEJON', 55);
Set @ID = SCOPE_IDENTITY()
End
Select @ID As ID