Création d’un serveur lié DB2 à l’aide du fournisseur Microsoft OLE DB pour DB2


Résumé


Cet article fournit un exemple de script SQL pour créer un serveur lié DB2 à l’aide de sp_addlinkedserver et émet des requêtes pour illustrer le Distributed requête de traitement (DQP) à l’aide de DB2OLEDB, le fournisseur Microsoft OLE DB pour DB2. Veuillez vous reporter à l’article suivant dans la Base de connaissances Microsoft pour plus d’informations sur les mots clés utilisés dans initstring DB2OLEDB.
218590 des sources de données de configuration pour le fournisseur Microsoft OLE DB pour DB2

Création de serveur lié

EXEC sp_addlinkedserver
@server = 'WNW3XX',
@srvproduct = 'Microsoft OLE DB Provider for DB2',
@catalog = 'OLYMPIA',
@provider = 'DB2OLEDB',
@provstr='NetLib=SNA;NetAddr=;NetPort=;RemoteLU=OLYMPIA;LocalLU=LOCAL;ModeName=QPCSUPP;User ID=WNW3XX;Password=WNW3XX;InitCat=OLYMPIA;Default Schema=WNW3XX;PkgCol=WNW3XX;TPName=;Commit=YES;IsoLvl=NC;AccMode=;CCSID=37;PCCodePage=1252;BinAsChar=NO;Data Source=Olympia_WNW3XX'

EXEC sp_addlinkedsrvlogin 'WNW3XX', false, NULL, 'WNW3XX', 'WNW3XX'
Veuillez noter que :
  • Les fournisseur DB2OLEDB doivent exécuter dans-proc. Pour activer ce paramètre :
    1. Démarrez Microsoft SQL Server Enterprise Manager.
    2. Dans l’arborescence de la Console, recherchez le nœud serveurs liés (sous le dossier sécurité). Avec le bouton droit sur le serveur lié créé ci-dessus et dans la boîte de dialogue Propriétés , cliquez sur l’onglet Général , cliquez sur Options, puis cliquez sur pour activer le paramètre Autoriser InProcess . Il s’agit de la seule façon d’activer ce paramètre, et une fois qu’il a été activé pour un fournisseur donné, le paramètre est utilisé pour tous les serveurs liés suivants créés à l’aide de ce fournisseur, y compris celles créées avec le script de T-SQL.
  • La longueur totale d’initstring serveur lié doit être 278 pas plus de caractères, il est avantageux d’utiliser les arguments de chaîne de connexion court DB2OLEDB comme indiqué ci-dessus.
  • Serveurs liés, à l’aide de DB2OLEDB peuvent également être configurés pour se connecter avec TCP/IP, que le script ci-dessus illustre ceci à l’aide d’une connexion APPC SNA.

Exemples de requêtes distribuées

Exemple de sélection à l’aide du nom de partie 4 : LinkedServer.Catalog.Schema.Table
SÉLECTIONNEZ * À PARTIR DE WNW3XX. OLYMPIA. WNW3XX. DÉPARTEMENT

Exemple de passer par l’intermédiaire de sélectionner en utilisant OPENQUERY avec un nom en 3 parties :
SÉLECTIONNEZ * À PARTIR DE OPENQUERY (WNW3XX, "SÉLECTIONNEZ * À PARTIR DE OLYMPIA. WNW3XX. EMP_ACT »)

Exemple de passer par l’intermédiaire de sélectionner à l’aide de OPENROWSET avec un nom de partie 2 :
SÉLECTIONNEZ * À PARTIR DE OPENROWSET
('DB2OLEDB', Netlib = SNA ; NetAddr = ; NetPort = ; RemoteLU = OLYMPIA ; LocalLU = LOCAL ; ModeName = QPCSUPP ; ID utilisateur = WNW3XX ; Mot de passe = WNW3XX ; InitCat = OLYMPIA ; par défaut du schéma = WNW3XX ; PkgCol = WNW3XX ; TPName = ; Valider = YES ; IsoLvl = CN ; Modeacc = ; CCSID = 37 ; PCCodePage = 1252 ; BinAsChar = NO ; Source de données = exemple »,
« SÉLECTIONNEZ * À PARTIR DE WNW3XX. EMPLOYÉ »)

Exemple d’une opération d’insertion à l’aide du nom de partie 4 :
INSÉREZ DANS WNW3XX. OLYMPIA. WNW3XX. VALEURS DE SERVICE
('E21', 'E01 » « FACTICE », NULL)

Notez que la mise à jour et supprimer à l’aide de DQP ne sont pas possibles avec la DB2OLEDB fournisseur fourni avec SNA version 4.0 Service Pack 2 et Service Pack 3 en raison de l’absence de prise en charge de signet, mais ces derniers ne fonctionnent pas avec le fournisseur Microsoft SNA 4.0 Service Pack 4 et le fournisseur qui a expédié les wit Serveur d’intégration d’hôte h. Pour plus d’informations, consultez l’article suivant dans la Base de connaissances Microsoft :

Prend en charge de DB2OLEDB 287093 mise à jour/suppression à partir du serveur lié de SQL
Exemple de jointure entre une table SQL Server et DB2 :
SÉLECTIONNEZ A.EMPLOYEE_NUMBER,B.ACTNO DE CORPDATA... EMPLOYEE_ACCOUNT, WNW3XX. OLYMPIA. WNW3XX. EMP_ACT B OÙ A.EMPLOYEE_NUMBER = ORDRE DE B.EMPNO PAR A.EMPLOYEE_NUMBER