Localdb 链接服务器
Localdb linked servers
我正在尝试在本地复制生产环境并且生产数据库使用链接服务器。我已经能够创建 localdb 的多个实例;是否可以在 localdb 实例之间创建链接服务器?如果没有,我还有哪些其他选项可用(理想情况下无需使用完整的 sql 实例)。
不确定回答您自己的问题是否是错误的形式,但如果将来其他人遇到同样的问题,事实证明这是可能的并且非常简单。创建新的 localdb 实例后,请使用:
USE master
IF EXISTS(SELECT * from sys.servers WHERE name = N'{serverName}')
BEGIN
DECLARE @serverId INT
SELECT @serverId = server_id FROM sys.servers WHERE name = N'{serverName}'
IF EXISTS(SELECT * FROM sys.linked_logins WHERE server_id = @serverId)
BEGIN
EXEC sp_droplinkedsrvlogin '{serverName}', null
END
EXEC sp_dropserver '{serverName}'
END
EXEC sp_addlinkedserver
@server=N'{serverName}',
@provider=N'SQLNCLI',
@srvproduct=N'',
@datasrc=N'{dataSource}';
EXEC sp_addlinkedsrvlogin
@rmtsrvname=N'{serverName}',
@useself='true'
稍微扩展 Dave 的 auto-answer...
如果远程数据库尚未附加到其实例,则需要在 sp_addlinked 服务器的提供程序字符串参数中包含其他连接详细信息。
EXEC sp_addlinkedserver
@server=N'{serverName}',
@provider=N'SQLNCLI',
@srvproduct=N'',
@datasrc=N'{dataSource}'
@provstr=N'{providerString}';
在我的例子中,我使用了:
{dataSource} = (LocalDB)\MSSQLLocalDB
{providerString} = AttachDbFileName=C:\Temp\Test.mdf;Integrated Security=True
我正在尝试在本地复制生产环境并且生产数据库使用链接服务器。我已经能够创建 localdb 的多个实例;是否可以在 localdb 实例之间创建链接服务器?如果没有,我还有哪些其他选项可用(理想情况下无需使用完整的 sql 实例)。
不确定回答您自己的问题是否是错误的形式,但如果将来其他人遇到同样的问题,事实证明这是可能的并且非常简单。创建新的 localdb 实例后,请使用:
USE master
IF EXISTS(SELECT * from sys.servers WHERE name = N'{serverName}')
BEGIN
DECLARE @serverId INT
SELECT @serverId = server_id FROM sys.servers WHERE name = N'{serverName}'
IF EXISTS(SELECT * FROM sys.linked_logins WHERE server_id = @serverId)
BEGIN
EXEC sp_droplinkedsrvlogin '{serverName}', null
END
EXEC sp_dropserver '{serverName}'
END
EXEC sp_addlinkedserver
@server=N'{serverName}',
@provider=N'SQLNCLI',
@srvproduct=N'',
@datasrc=N'{dataSource}';
EXEC sp_addlinkedsrvlogin
@rmtsrvname=N'{serverName}',
@useself='true'
稍微扩展 Dave 的 auto-answer...
如果远程数据库尚未附加到其实例,则需要在 sp_addlinked 服务器的提供程序字符串参数中包含其他连接详细信息。
EXEC sp_addlinkedserver
@server=N'{serverName}',
@provider=N'SQLNCLI',
@srvproduct=N'',
@datasrc=N'{dataSource}'
@provstr=N'{providerString}';
在我的例子中,我使用了:
{dataSource} = (LocalDB)\MSSQLLocalDB
{providerString} = AttachDbFileName=C:\Temp\Test.mdf;Integrated Security=True