Sql 多行插入查询问题寻找更有效的方法
我已经创建了一个SQL Server数据库表,并且有许多数据项要输入到该表中。在这个特定场景中,我有两列,Sql 多行插入查询问题寻找更有效的方法,sql,sql-server,sqlite,ssis,insert,Sql,Sql Server,Sqlite,Ssis,Insert,我已经创建了一个SQL Server数据库表,并且有许多数据项要输入到该表中。在这个特定场景中,我有两列,技术问题和输入的时间 我曾尝试将现有数据值合并到一个INSERT-into语句中,但是我没有找到一种方法来扩展它,因此我没有花一整天的时间复制基本数据 但是,请注意,该查询只有4个数据元素,每列两个。我想放大这个,这样我可以一次插入数百行。下面的insert语句源自下面的现有数据(来自SQLITE3表,我正在尝试将数据插入SQL Server数据库) 上面的例子效果很好,但我不知道扩大规模的
技术问题
和输入的时间
我曾尝试将现有数据值合并到一个INSERT-into
语句中,但是我没有找到一种方法来扩展它,因此我没有花一整天的时间复制基本数据
但是,请注意,该查询只有4个数据元素,每列两个。我想放大这个,这样我可以一次插入数百行。下面的insert语句源自下面的现有数据(来自SQLITE3表,我正在尝试将数据插入SQL Server数据库)
上面的例子效果很好,但我不知道扩大规模的最佳方法
现有数据示例(有数百行,如下所示)
有没有更有效的方法?(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')
其他信息
(2) SSIS方法 如果您熟悉SQL Server integration Services,它是将数据从一个数据源传输到另一个数据源的有效方法,您可以使用它通过ODBC将数据从SQLite传输到SQL Server
(3) 使用ad-hoc查询方法 我以前从未尝试过这种方法,我不知道它是否有效 您可以通过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')
EXEC sp_配置“显示高级选项”,1;
重新配置;
EXEC sp_配置“临时分布式查询”,1;
重新配置;
插入问题类型([技术问题],输入时间)
选择[技术问题],输入时间
从OPENROWSET('MSDASQL','DSN=',
“从sqliteTable中选择*”)
其他信息
选择而不是值插入的示例
INSERT INTO questiontype([Technology Questions], time_entered)
SELECT [Technology Questions], time_entered
FROM openquery(sqlite_linked_server, 'select * from sqlitetable')
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')