我想获取插入表中的最后一行的ID,并将其与SQL Server中的变量一起使用。
这是我的代码:
SELECT IDENT_CURRENT('profiles')
我尝试添加where子句
SELECT IDENT_CURRENT('profiles') WHERE profiles.userid = '2'
这是我的错误:
多部分标识符" profiles.userid"无法受约束。
答案 0 :(得分:2)
要使WHERE
子句的第二个查询起作用(到它没有错误的程度),您需要锚定多部分标识符profiles.userid
FROM
:
SELECT IDENT_CURRENT('profiles') FROM profiles WHERE profiles.userid = '2'
但这没有多大意义因为WHERE
子句不会真正改变底线结果(即为profile
生成的最后一个身份) - 只是可能在结果集中多次包含它。
如果您确实希望为profile
生成的最后一个标识值删除它标识的行,那么您的第一个查询...
SELECT IDENT_CURRENT('profiles')
...是要走的路。
当然,您需要在profile
语句中使用为DELETE
生成的最后一个标识值,而不仅仅是SELECT
- 例如(假设标识列在profiles
是id
)...
DECLARE @lastID int;
SELECT @lastID = IDENT_CURRENT('profiles');
DELETE FROM profiles WHERE id = @lastID;
...,这真的会更好地说:
DELETE FROM profiles WHERE id = IDENT_CURRENT('profiles');