我想将表格中的50行更新为当前日期。 我知道如何选择50个随机结果,但我不知道如何更新它们。
这就是我对Select代码所拥有的:
SELECT TOP 50[ID]
,[Message]
,[Date]
,[Type]
,[Username]
FROM [database].[dbo].[dbTable]
ORDER BY NEWID()
如果我是正确的,这将获得50个随机行。
首先我刚刚更新了前50个,但我想从我的数据库中获取一些随机值。
update top(50) dbTable
set date=getdate()
我不想弄乱数据库,因为我今天无法访问备份。
如果有什么不清楚或有什么请问我!
答案 0 :(得分:1)
试试这个
UPDATE [database].[dbo].[dbTable] Set [Date] = GetDate() where [ID] IN
(
SELECT TOP 50 [ID] FROM [database].[dbo].[dbTable] ORDER BY NEWID()
)
或其他:
WITH q AS
(
SELECT TOP 50[ID]
,[Message]
,[Date]
,[Type]
,[Username]
FROM [database].[dbo].[dbTable]
ORDER BY NEWID()
)
UPDATE q
SET [Date] = GetDate()
答案 1 :(得分:1)
试试这样:
update [dbo].[dbTable] set date=getdate() where Id in
(
select top 50 id from dbo.dbTable order by NEWID()
)
答案 2 :(得分:1)
TOP 50
不会让你随机排。有一种方法可以在sql-server中获取随机行。您可以将其与UPDATE
查询结合使用。
随机行:
SELECT TOP 50 ID FROM [database].[dbo].[dbTable] ORDER BY NEWID();
应用于UPDATE
查询:
UPDATE [database].[dbo].[dbTable]
SET Date = GETDATE()
WHERE ID IN( SELECT TOP 50 ID FROM [database].[dbo].[dbTable] ORDER BY NEWID() );