Est-il possible de créer par programme un DBLink dans SQL Server 2005 en C#? Supposons que j'ai la base de données A et B. Je veux créer un DBlink dans A pour connecter B. Je vais capturer les informations de base de données B de l'utilisateur et créer le DBLink dans la base de données A. Est-ce possible dans C# .Net version 2.0 ?Est-il possible de créer par programme un DBLink dans SQL Server 2005 en C#?
0
A
Répondre
2
Vous pouvez ajouter un serveur lié à sp_addlinkedserver:
EXEC sp_addlinkedserver
@server = 'OracleHost',
@srvproduct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'MyServer'
De C#, vous pouvez stocker cette requête dans un SqlCommand, et appelez ExecuteNonQuery() pour l'exécuter sur la base de données.
1
Qu'est-ce que vous voulez faire est une procédure stockée qui fait cela et appeler à partir de C#
Faire la procédure stockée suivante:
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
Maintenant, la db à distance a été liée à l'utilisateur local Administrateur.
Maintenant en C# vous faire juste un SqlCommand et définissez le type et la procédure stockée et exécuter une requête non :)
SERVERDOMAIN \ Administrateur peut également être juste un utilisateur sql comme « dbo ».
J'espère que cela a aidé.