我有一个带有Identity列(ArticleID)的表。我想选择表中的最后一行并将值插入特定列(ArticleImage)。我已经有了价值,所以我不需要查询它。我在SQL语句中的哪个位置放置了这个值?
INSERT INTO EasyDNNNews (ArticleImage)
SELECT TOP 1 FROM EasyDNNNews
ORDER BY ArticleID DESC
答案 0 :(得分:2)
您可以使用子查询或可更新的CTE执行此操作:
WITH toupdate as (
SELECT TOP 1 d.*
FROM EasyDNNNews d
ORDER BY ArticleID DESC
)
UPDATE toupdate
SET ArticleImage = ??;
答案 1 :(得分:1)
就像评论员所暗示的那样,你需要一个UPDATE语句,而不是INSERT。更新,更新已存在的记录,其中INSERT创建一个整个品牌打屁股新记录。
由于您希望根据排序更新特定记录,因此比UPDATE <table> SET <field>='Somevalue';
更复杂一些。您通过SELECT TOP 1..
查询朝着正确的方向前进。
UPDATE EasyDNNNews
SET ArticleImage = 'YOURVALUE'
WHERE ArticleID = (SELECT TOP 1 ArticleID FROM EasyDNNNews ORDER BY ArticleID Desc)`
该子查询获取最大ArticleID
。外部UPDATE语句然后更新Articleid的记录,将ArticleImage设置为您想要在那里保留的任何值。