有没有办法从 Microsoft SQL Server Management Studio 中打开 .db 文件(SQLite 数据库文件)?
现在我们有一个流程,它将从 Microsoft SQL Server 数据库中获取数据并将其放入 SQLite 数据库文件中,该文件稍后将被应用程序使用。
有没有办法打开 SQLite 数据库文件,以便可以将其与 SQL Server 数据库中的数据进行比较...仅使用一个 SQL 查询?
有适用于 Microsoft SQL Management Studio 的插件吗?或者也许有另一种方法可以仅使用一个查询来完成相同的任务。
现在我们必须编写两个脚本……一个用于 sql server 数据库,一个用于 sqlite 数据库……然后以相同的格式从每个脚本中获取输出,并将它们分别放入各自的 OpenOffice 电子表格文件中。最后,我们比较这两个文件以查看是否存在差异。也许有更好的方法来做到这一点。
编辑:表格列和布局不同,因此使用组合http://www.codeproject.com/KB/database/convsqlservertosqlite.aspx和http://www.sqlitecompare.com/在这里不起作用。
PS:很多应用程序内部使用SQLite:SQLite 的知名用户
答案1
你好,是的,只要您有正确的 odbc 驱动程序,就可以从管理工作室中打开任何 sql 服务器。创建到 *.db3 文件的 ODBC 连接,并将其命名为 SQLite,然后尝试这是一个查询窗口
-- 需要是系统 odbc 连接,而不是用户
EXEC sp_addlinkedserver
@server = 'SQLite', -- the name you give the server in studio
@srvproduct = '',
@provider = 'MSDASQL',
@datasrc = 'SQLite' -- the name of the system odbc connection you created
GO
这就是你获取数据的方式,如果你愿意,你也可以使用这个 SQL 创建视图
从 OPENQUERY 中选择 * (SQLite,'从 tbl_Postcode 中选择 *')
答案2
OP 要求一种在数据库之间进行查询的方法,因此我理解链接服务器的响应。但是,如果你来这里只是因为想用 MSSMS 打开 SQLite 数据库,那么这要简单得多。
说我懒吧,但所有这些答案都很费力和/或需要你可能不想做的事情,在每种情况下都必须做的事情,或者如果你所寻找的只是比 SQLite 的数据库浏览器(如 MSSMS)更好的东西,那么这些答案就是错误的事情。
只需使用这个:SQLServerCompactSQLiteToolboxforSSMS
浏览到文件
答案3
如果您无法安装系统 DNS,则以下步骤应该可行:
- 安装Ch. Werner 的 SQLite ODBC 驱动程序(32 位和 64 位?)
- 在 SSMS 中,转到服务器对象 > 链接服务器 > 新建链接服务器...
- 在窗口中输入:
- 链接服务器:示例(或其他内容)
- 提供程序:用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序
- 产品名称:示例(或任何内容)
- 提供程序字符串:
Driver=SQLite3 ODBC Driver;Database=full/path/to/db;
您现在应该能够使用以下命令查询 SQLite DB
SELECT * FROM OPENQUERY(EXAMPLE, 'SELECT * FROM tbl_Postcode;')
正如刚才提到的。
答案4
如果您有一个 SQL Server 可以接受的 SQLite 提供程序,您可能需要创建一个链接服务器。
连接到您的数据库,然后浏览“服务器对象”、“链接服务器”并添加新的链接服务器。然后,您可以使用 SQL Server 查询 SQLite 数据库,并直接比较结果。
这里是 MySQL 的教程,因此如果您可以为 SQLite 创建 ODBC 连接,那么就可以开始了。