插入到 openquery 和 WHERE 语句中
Insert into openquery and WHERE statement
我有一些SQL(不是我写的),我找不到它的意思。
声明类似于:
INSERT INTO OPENQUERY (linkedServerName, "SELECT col1, col2 FROM service WHERE ServiceId < 0")
(col1, col2)
SELECT col1, col2 FROM Service
我明白 "insert into" 部分的意思,但我无法理解 "WHERE ServiceId < 0" 子句。
INSERT (select?) 语句引入什么条件?
这部分代码:
INSERT INTO OPENQUERY (linkedServerName, "SELECT col1, col2 FROM service WHERE ServiceId < 0")
您详细说明了要放置数据的 table 和列,因此 WHERE 没有意义。也许在内部是允许的,因为引擎只是从那里检索 table 名称和列列表,所以它不会 return 任何错误。
INSERT INTO OPENQUERY (linkedServerName, 'SELECT col1, col2 FROM service WHERE ServiceId < 0')
以上查询根据引号 ('SELECT col1, col2 FROM service WHERE ServiceId < 0
') 中给出的查询从链接服务器(连接的服务器)提取数据。
可以正确写成:
SELECT col1, col2 INTO localtable
FROM OPENQUERY (linkedServerName, 'SELECT col1, col2 FROM Service WHERE ServiceId < 0')
谢谢。
我有一些SQL(不是我写的),我找不到它的意思。
声明类似于:
INSERT INTO OPENQUERY (linkedServerName, "SELECT col1, col2 FROM service WHERE ServiceId < 0")
(col1, col2)
SELECT col1, col2 FROM Service
我明白 "insert into" 部分的意思,但我无法理解 "WHERE ServiceId < 0" 子句。
INSERT (select?) 语句引入什么条件?
这部分代码:
INSERT INTO OPENQUERY (linkedServerName, "SELECT col1, col2 FROM service WHERE ServiceId < 0")
您详细说明了要放置数据的 table 和列,因此 WHERE 没有意义。也许在内部是允许的,因为引擎只是从那里检索 table 名称和列列表,所以它不会 return 任何错误。
INSERT INTO OPENQUERY (linkedServerName, 'SELECT col1, col2 FROM service WHERE ServiceId < 0')
以上查询根据引号 ('SELECT col1, col2 FROM service WHERE ServiceId < 0
') 中给出的查询从链接服务器(连接的服务器)提取数据。
可以正确写成:
SELECT col1, col2 INTO localtable
FROM OPENQUERY (linkedServerName, 'SELECT col1, col2 FROM Service WHERE ServiceId < 0')
谢谢。