Я хочу «связать» сервер SQLite с сервером SQL Server 2008. Например. используя sp_addlinkedserver
команда. Как мне это сделать?
Я искал повсюду, но не нашел решения этой проблемы. Самая близкая попытка, которую я нашел, здесь:
http://www.sqlservercentral.com/Forums/Topic866972-149-1.aspx
--#################################################################################################
--Linked server Syntax for SQLite
--using OLE provider C:\Program Files\Cherry City Software\SQLiteProvider\SQLitePV.dll
--from http://cherrycitysoftware.com/ccs/Download/Download.aspx
--#################################################################################################
DECLARE @server sysname,
@srvproduct nvarchar(256),
@provider nvarchar(256),
@datasrc nvarchar(100),
@location nvarchar(100),
@provstr nvarchar(100),
@catalog sysname,
@sql varchar(1000)
--add an SQLite Database as a linked server
SET @server = N'mySQLite'
SET @srvproduct = N'SQLite Provider'
SET @provider = N'OleSQLite.SQLiteSource.1'
SET @datasrc = N'C:\Data\LowellSSC.db3'
set @provstr = ''
EXEC sp_addlinkedserver @server,@srvproduct,@provider,@datasrc,NULL,@provstr
exec sp_addlinkedsrvlogin @rmtsrvname='mySQLite',
@useself = N'false',
@locallogin = NULL,
@rmtuser = N'Admin',
@rmtpassword = NULL
--list all the tables and their names
EXEC sp_tables_ex 'mySQLite'
--above fails with this error:
--Msg 7302, Level 16, State 1, Procedure sp_tables_ex, Line 41
--Cannot create an instance of OLE DB provider "OleSQLite.SQLiteSource.1" for linked server "mySQLite".
GO
EXEC dbo.sp_DropServer 'mySQLite', 'DropLogins'
Возможно, вам повезет больше с драйвером ODBC. В Google есть несколько, одна из которых http://www.patthoyts.tk/sqlite3odbc.html.
Теоретически, если вы можете установить драйвер ODBC, вы можете создать системный DSN. Если вы можете создать системный DSN, вы можете добавить его как связанный сервер.
Конечно, и OLEDB, и ODBC имеют тенденцию выходить из строя, если драйверы OLEDB / ODBC 32-битные, а SQL Server 64-битный; Я не верю, что вы можете создать экземпляр 32-битного драйвера OLEDB / ODBC в 64-битном SQL (я думаю, у нас были аналогичные проблемы с Excel)
HTH
Дж.
У вас есть OleSQLite.SQLiteSource.1
в вашем списке поставщиков связанных серверов? Если нет, вам следует убедиться, что вы установили эти драйверы на свой компьютер (и перезапустили службу SQL Server, по крайней мере, чтобы убедиться, что она их подхватывает).