是否可以在 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 也可以只是像“dbo”这样的 sql 用户。

希望这有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top