如何在 OPENQUERY 中执行更新操作

作者:vkvi 来源:ITPOW(原创) 日期:2007-8-24

在 OPENQUERY 中选择记录用:

SELECT * FROM OPENQUERY (linked_server, "SELECT * FROM msgs");

那么如何在 OPENQUERY 中执行 INSERT、UPDATE、DELETE 这些更新操作呢?

OPENQUERY (linked_server, "INSERT INTO msgs(...) VALUES(...)");

以上做法是不正确的,正确做法如下:

INSERT 示例

INSERT OPENQUERY (linked_server, 'SELECT title, content FROM msgs')
VALUES ('title', 'content');

UPDATE 示例

UPDATE OPENQUERY (linked_server, 'SELECT title, content FROM msgs WHERE id=1')
SET title = 'newTitle', content = 'newContent';

DELETE 示例

DELETE OPENQUERY (linked_server, 'SELECT id FROM msgs WHERE id=1');

注意

OPENQUERY 不接受参数变量,也就是说:DELETE OPENQUERY (linked_server, 'SELECT id FROM msgs WHERE id=' + @id); 是不正确的,但可以这样做:DELETE OPENQUERY (linked_server, 'SELECT id FROM msgs') WHERE id=@id); 。

T-SQL 中,INSERT 可以省略 INTO,DELETE 也可以省略 FROM。

INSERT 时必须明确 SELECT 的字段。

相关阅读

相关文章