我已经创建了一个SQL Server数据库表,并且有很多数据条目要输入该表中。在这种特殊情况下,我有两列Technology Questions
和time_entered
。
我试图将现有的数据值合并为一个INSERT INTO
语句,但是我无法找到一种方法来扩大它,因此我不必花一整天的时间来复制基本数据。
此查询有效,但是请注意,它只有4个数据元素,每列两个。我想扩大规模,以便一次插入数百行。下面的插入语句是从下面的现有数据派生而来的(来自SQLITE3表,并且我试图将数据插入SQL Server数据库中。)
INSERT INTO questiontype([Technology Questions], time_entered)
VALUES ('Technology Question', '2018-10-29 13:31'),
('Technology Question', '2018-10-29 14:11')
上面的示例很好用,但我不知道扩大规模的最佳方法。
现有数据示例(如下几百行)
Technology Question|2019-03-23 10:40
Technology Question|2019-03-23 10:40
Technology Question|2019-03-23 13:24
Technology Question|2019-03-23 13:55
Technology Question|2019-03-23 13:55
Technology Question|2019-03-23 16:23
Technology Question|2019-03-23 16:26
Technology Question|2019-03-23 16:59
Technology Question|2019-03-24 13:34
Technology Question|2019-03-24 15:11
碰巧有没有更有效的方法?
答案 0 :(得分:1)
由于您正在从SQLite3中读取数据,因此可以从SQL Server创建链接服务器,并使用简单的insert语句导入数据:
INSERT INTO questiontype([Technology Questions], time_entered)
SELECT [Technology Questions], time_entered
FROM openquery(sqlite_linked_server, 'select * from sqlitetable')
其他信息
如果您熟悉SQL Server集成服务,这是一种将数据从数据源传输到另一个数据源的有效方法,则可以使用它通过ODBC将数据从SQLite传输到SQL Server。
我以前没有尝试过这种方法,我不知道它是否有效。
您可以通过ODBC连接到SQLite数据库,而无需添加链接服务器,您可以使用OPENROWSET
的临时查询来完成此操作
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
INSERT INTO questiontype([Technology Questions], time_entered)
SELECT [Technology Questions], time_entered
FROM OPENROWSET('MSDASQL', 'DSN=<odbc DSN>',
'SELECT * FROM sqliteTable')
其他信息