SQL-insert into - aus verschiedenen server-und Anmeldeinformationen

Wir haben eine Datenbank vorhandene auf server A. Server A hostet auch unser Programm-code, die werden den Aufruf der SQL-Anweisung.

Haben wir eine weitere Datenbank VMIntranetTest bestehenden auf server B VMC-MMS

Server A und server B haben unterschiedliche logon-Benutzer-Anmeldeinformationen. Server A und server B vorhanden ist, die auf unserem internen Netzwerk.

Verwendung von PHP, ich habe den folgenden SQL-Anweisung definiert.

$strSql = 'INSERT INTO VMC-MMS.VMIntranetTest.dbo.TestTable (FirstName, LastName, Age) ' .
                    'SELECT FNAME, LNAME, AGE ' .
                    'FROM BSLIB.SQLTSTF ';

FROM -> BSLIB.SQLTSTF <- ist auf unserem lokalen server (), so dass mein connection string verwendet, um die Anweisung ausgeführt wird, wird die Benutzer-Anmeldeinformationen für die Verbindung zu server A.

INSERT INTO -> VMC-MMS.VMIntranetTest.dbo.TestTable <- ist die verschiedenen server.Datenbank.dbo.Tabelle (Server B).

Wie kann ich geben Sie die Benutzer-Anmeldeinformationen verwendet werden, für die INSERT INTO-Teil der Anweisung? Der sekundäre Teil mit der SELECT-FROM-Anweisung sollte schon abgedeckt werden, die durch mein initial connection string.

Danke,

Bearbeiten 1 in Bezug auf Paul ' s Antwort.

Ich habe versucht, verwenden Sie die OPENROWSET wie bereits erwähnt, und haben die folgende SQL-Anweisung.

INSERT INTO VMIntranetTest.TestTable (FirstName, LastName, Age)
OPENROWSET('vmas400',
           'Server=192.168.1.2;Trusted_Connection=yes;user_id=INTRAIS;password=****',
           'SELECT FNAME, LNAME, AGE FROM BSLIB.SQLTSTF' ) as a 

Wie Sie sehen können, ich änderte die Dinge ein wenig herum. Mein connection string durch den code öffnet eine Verbindung zu Server B "VMC-MMS". Meine SQL-Anweisung "select" - Teil, wird der OPENROWSET-zum öffnen einer Verbindung zum Server Eine "192.168.1.2".

Bin ich aber immer diese Fehlermeldung:

SQLSTATE[HY000]: General error: 1 in der Nähe von "OPENROWSET": syntax error

Edit 2 ich nötig, um die gesamte OPENROWSET Teil innen a-WERTE ( ) - Klausel. Jetzt bin ich immer die Meldung:

SQLSTATE[HY000]: General error: 1 no Tabelle: VMIntranetTest.TestTable

Edit 3

Habe ich nun die folgende SQL -

 INSERT INTO VMIntranetTest.TestTable (FirstName, LastName, Age)
 select a.FNAME, a.LNAME, a.AGE FROM 
 OPENROWSET('vmas400',
            'Server=192.168.1.2;Trusted_Connection=yes;user_id=INTRAIS;password=****',
            'SELECT FNAME, LNAME, AGE FROM BSLIB.SQLTSTF' ) as a

Und bin immer diese Fehlermeldung:

SQLSTATE[HY000]: General error: 1 near "(": syntax error

  • Warum bringen Sie diese Abfragen zusammen in der gleichen DB nennen? Sie sind nicht voneinander abhängig.
InformationsquelleAutor adam | 2012-05-29
Schreibe einen Kommentar