0

我们有两个表dbo.MONITOR(Reg. table)和sum_file_folder(documentum table)

dbo.MONITOR

- FILE_ID
- STATUS 

sum_file_folder

- object_name
- file_status 

其中,FILE_ID 和 object_name 是两个表中的相同字段。

所以这些内部连接查询不起作用......

update dbo.MONITOR t1 objects set t1.STATUS = (select file_status from sum_file_folder t2 where t1.FILE_ID=t2.object_name)

UPDATE t1 OBJECTS SET t1.STATUS = t2.file_status from sum_file_folder t1 INNER JOIN dbo.MONITOR t2 ON t1.object_name = t2.FILE_ID
4

3 回答 3

0

看起来您的查询中有一些语法和表别名问题。

你可以试试下面的查询:

UPDATE t1 
SET STATUS = t2.file_status 
FROM dbo.MONITOR t1 
INNER JOIN dbo.sum_file_folder t2 ON t2.object_name = t1.FILE_ID
于 2017-01-13T07:04:42.637 回答
0

当您使用自己的表时,您可以安全地直接更新数据库 - 不需要 DQL(sum_file_folder 必须是自定义表 - 我以前没见过)。如果您坚持使用 DQL,您可以执行 EXECUTE exec_sql WITH QUERY 'your-sql-update-statement' 小心 - 这是自动提交的。

于 2017-01-13T18:15:03.247 回答
0

您可以使用此代码更新表中的状态。

UPDATE t1
SET t1.STATUS = t2.file_status
FROM dbo.MONITOR t1 
INNER JOIN sum_file_folder t2 where t1.FILE_ID=t2.object_name
于 2017-01-13T07:06:46.317 回答