我需要更新表中的一行,并从中获取一个列值.我可以这样做
UPDATE Items SET Clicks = Clicks + 1 WHERE Id = @Id; SELECT Name FROM Items WHERE Id = @Id
这将生成2个计划/访问表.是否有可能在T-SQL中修改UPDATE语句以便更新并返回仅具有1个计划/访问权限的Name列?
我正在使用C#,ADO.NET ExecuteScalar()
或ExecuteReader()
方法.
您需要OUTPUT子句
UPDATE Items SET Clicks = Clicks + 1 OUTPUT INSERTED.Name WHERE Id = @Id
仅访问一次表:
UPDATE Items SET Clicks = Clicks + 1 , @Name = Name WHERE Id = @Id; select @name;