是否可以在 C# 中以编程方式在 SQL Server 2005 中创建 DBLink?
假设我有数据库 A 和 B。我想在 A 中创建一个 DBlink 来连接 B。我将从用户那里捕获 B 数据库信息并在数据库 A 中创建 DBLink。这在 C# .Net 2.0 版中是否可行?
是否可以在 C# 中以编程方式在 SQL Server 2005 中创建 DBLink?
假设我有数据库 A 和 B。我想在 A 中创建一个 DBlink 来连接 B。我将从用户那里捕获 B 数据库信息并在数据库 A 中创建 DBLink。这在 C# .Net 2.0 版中是否可行?
您可以使用 sp_addlinkedserver 添加链接服务器:
EXEC sp_addlinkedserver
@server = 'OracleHost',
@srvproduct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'MyServer'
在 C# 中,您可以将此查询存储在 SqlCommand 中,并调用 ExecuteNonQuery() 在数据库上执行它。
你想要做的是创建一个存储过程来执行此操作,然后从 C# 调用它
制作以下存储过程:
Create PROCEDURE [dbo].[LinkMyServer]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
EXEC sp_addlinkedserver @server = N'LinkName',
@srvproduct = N' ',
@provider = N'SQLOLEDB',
@datasrc = N'some.domain.or.ip.com',
@catalog = N'database_name'
EXEC sp_addlinkedsrvlogin N'LinkName', false, N'ServerDomain\Administrator', N'user_on_remotedb', N'password_on_remote_db'
END
现在远程数据库已链接到本地用户管理员。
现在在 C# 中,您只需创建一个 SqlCommand 并将类型设置为存储过程并执行非查询:)
ServerDomain\Administrator 也可以只是一个 sql 用户,如“dbo”。
希望这有帮助。