SQL Server:查询语法似乎是一个INSERT ... SELECT

时间:2016-09-20 15:17:15

标签: sql-server tsql

我试图从这里运行查询:https://support.microsoft.com/en-us/kb/3083381。但是我在table收到了错误的语法错误。

insert into dbChangeTrackingMetadata.dbo.t_SYSCOMMITTABLE
SELECT commit_ts, xdes_id, commit_lbn, commit_csn, commit_time
FROM OpenRowset (table SYSCOMMITTABLE, db_id (), 0, 0)

这似乎是MySQL INSERT...SELECT查询的等价物,但我不确定我是否跟在最后一行。有人能照亮我吗?

1 个答案:

答案 0 :(得分:1)

当在单用户模式下启动SQL Server时,KB文章https://support.microsoft.com/en-us/kb/3083381中提到的代码只能使用专用管理员连接执行。

" OPENROWSET(表...)"语法是一个内部系统调用,只能由系统对象执行(当SQL Server正常启动时)。

OPENROWSET允许的语法如下所示:

SELECT * FROM OPENROWSET(BULK 'C:\WINDOWS\system.ini', SINGLE_CLOB) t

SELECT * FROM OPENROWSET('SQLNCLI', 'Server=.;Trusted_Connection=yes;', 'SELECT * FROM sysdatabases') t

有关OPENROWSET的详细信息,请参阅https://msdn.microsoft.com/en-us/library/ms190312.aspx