我有一些SQL(不是我写的),我找不到它的含义。
声明类似于:
INSERT INTO OPENQUERY (linkedServerName, "SELECT col1, col2 FROM service WHERE ServiceId < 0")
(col1, col2)
SELECT col1, col2 FROM Service
我得到了“插入”部分的观点,但我无法理解“WHERE ServiceId&lt; 0”子句。
这种情况对INSERT(select?)语句引入了什么?
答案 0 :(得分:0)
在这部分代码中:
INSERT INTO OPENQUERY (linkedServerName, "SELECT col1, col2 FROM service WHERE ServiceId < 0")
您详细说明了要放置数据的表和列,因此WHERE毫无意义。也许在内部它是允许的,因为引擎只是从那里检索表名和列列表,所以它不会返回任何错误。
答案 1 :(得分:0)
INSERT INTO OPENQUERY (linkedServerName, 'SELECT col1, col2 FROM service WHERE ServiceId < 0')
以上查询根据引号中提供的查询从&#39; SELECT col1, col2 FROM service WHERE ServiceId < 0
&#39;)中提取来自链接服务器(已连接服务器)的数据。
它可以正确写成:
SELECT col1, col2 INTO localtable
FROM OPENQUERY (linkedServerName, 'SELECT col1, col2 FROM Service WHERE ServiceId < 0')
感谢。