![](/img/trans.png)
[英]How to update values from one where condition to other where condition on same table and column using SQL
[英]SQL - Update same table based on a condition in WHERE
我需要编写如下的SP。 从.net Windows服务应用程序每秒调用一次此SP。
SELECT TOP 1 ID
FROM TABLE
WHERE GETDATE() < ExpirationDate
ORDER BY ID
如果GetDate() > ExpirationDate
使用值更新记录列。
我不想执行以下操作,因为每次调用SP时,它都会查看整个表以进行更新。
我只想更新SP当前正在查看的记录。
UPDATE [TableName]
SET fiel1=1 , field2 = 'abc'
WHERE ExpirationDate > GETDATE()
提前致谢。
使用更新/选择。 根据您的SQL实例的配置方式,您可能必须使用下面的第二个示例包装内部选择
UPDATE [TableName] SET [TableName].fiel1= 1 , [TableName].field2 = 'abc'
FROM (
SELECT TOP 1 ID
FROM TABLE
WHERE GETDATE() < ExpirationDate
ORDER BY ID
) a
where [TableName].ID = a.ID
可能必须尝试以下方法:
UPDATE [TableName] SET [TableName].fiel1= 1 , [TableName].field2 = 'abc'
FROM (
SELECT TOP 100 PERCENT * FROM (
SELECT TOP 1 ID
FROM TABLE
WHERE GETDATE() < ExpirationDate
ORDER BY ID
) b
) a
where [TableName].ID = a.ID
这将更新您在原始脚本中返回的单行值:
UPDATE [table]
SET
Field1 = 1,
Field2 = abc
WHERE ID =
(
SELECT MIN(ID)
FROM [table]
WHERE GETDATE() < ExpirationDate
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.