在Microsoft SQL Server 2008 R2中,订单为'VERIFIED'
或有时为'COMPLETED'
('COMPLETED'
表示图片已发送到订单,'VERIFIED'
表示技术已“验证”图像对于该患者是正确的。)
我想标记这些研究'READ'
,这些研究将保留服务器上的图像顺序,但是将它们从医生和放射科技看到的列表中删除,这样他们的列表就不会那么混乱。
现在,我要进入一张桌子,一次一张CTRL + V + DOWN ARROW
一张,因为成千上万,所以需要很长时间。
我是CTRL + V
或Status
到'COMPLETED'
表中的'VERIFIED'
'READ'
。
SELECT StudyUID, StudyDate, StudyDesc, PatName, Status, StoragePath
FROM Studies
WHERE (Status = N'VERIFIED')
只是我查询表格的查询。 我试图通过帖子搜索,但是我害怕尝试替换或插入命令,因为我学会了一旦你在SQL中改变某些内容就没有撤消。
Status
是我需要更改质量的列数据,我要在该列下替换的数据是'VERIFIED'
到'READ'
。这是我到目前为止所做的。
SELECT StudyUID, StudyDate, Accession, StudyDesc, PatName, Status, StoragePath
FROM Studies
SELECT Replace(Status, 'VERIFIED', 'READ')
WHERE (Status = N'VERIFIED')
答案 0 :(得分:3)
您需要的是UPDATE
声明。
这应该适合你:
UPDATE Studies
SET Status = 'READ'
WHERE Status = 'VERIFIED'
此外,就能够“撤消”而言,有两种方法可以做到这一点。
其一,您可以使用BEGIN TRANSACTION
,然后在您运行COMMIT TRANSACTION
之前,您所做的任何更改都不会提交到数据库。
二,创建一个新数据库并从表中复制数据以备份到新数据库。 (我假设您无法对完整数据库进行备份/恢复)
答案 1 :(得分:1)
@graham,你说错了,一旦你对SQL做出改变,你就不能轻易地回去改变它。
您希望实现的目标是将status
或completed
的所有verified
更改为Read
。使用UPDATE
语句可以实现这一点。
以下是您需要能够实现此目的的SQL语句:
UPDATE Studies
SET Status = 'READ'
WHERE Status in ('VERIFIED', 'COMPLETED')
必须谨慎使用上述声明。如果您确定要将整个数据库中的每个实例更改为READ
,那么上述内容就是您所需要的。
如果你想在做之前看看你要更新的内容,你可以这样做:
SELECT * FROM Studies
WHERE Status in ('VERIFIED', 'COMPLETED')
如果您有一个可以备份数据库的数据库管理员,那么如果您确实犯了错误,您就可以从中恢复。
之前关于COMMIT
的答案中的注释与您提出的问题并不完全相关。这意味着,如果您正在进行一系列更新,如果一个更新,您应该能够回滚并且不进行任何更新。在您的情况下,您只是害怕在数据库中进行更新。除非备份数据库,否则您正在进行的更新确实是不可逆转的。我希望这可以帮助你!
答案 2 :(得分:0)
Update Studies Set Status = 'Read'
where status = 'VERIFIED'
我会首先运行Select * from Studies where Status = 'VERIFIED'
并将这些记录保存到Excel中,以便在出现问题时备份。