Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Einfügen von SQL Server-Daten in Salesforce mit einem Cursor

Dieser Blog enthält ein Beispiel für die Übertragung von Daten aus einer lokalen SQL Server-Tabelle nach Salesforce. Wir verwenden den ODBC-Treiber von Salesforce.com, um drei Datensätze in die Tabelle Salesforce Product2 einzufügen.

  1. Konfigurieren Sie einen Verbindungsserver, der eine Verbindung zu Salesforce herstellt.
  2. Ändern Sie in SQL Server Management Studio Verknüpfter Server> Eigenschaften des verknüpften Servers> Serveroptionen> RPC-Ausgang Einstellung auf True.
  3. Erstellen Sie diese Tabelle in SQL Server:
    create table NewProducts ( "Name" nvarchar(30), ProductCode nvarchar(10), Description nvarchar(max))
    insert into NewProducts values ( 'Test1', 'TEST01', 'Test 1st description')
    insert into NewProducts values ( 'Test2', 'TEST02', '2nd description' )
    insert into NewProducts values ( 'Test3', 'TEST03', '3rd Test description')

    Sie können Daten in alle Spalten der Tabelle Product2 einfügen, vorausgesetzt, Sie haben die erforderlichen Berechtigungen.

  4. Führen Sie die folgende SQL aus:
    -- Declare a variable for each column you want to insert:
    declare @Name nvarchar(30)
    declare @ProductCode nvarchar(10)
    declare @Description nvarchar(max)
    
    -- Use a cursor to select your data, which enables SQL Server to extract
    -- the data from your local table to the variables.
    declare ins_cursor cursor for 
            select "Name", ProductCode, Description from NewProducts
        open ins_cursor
        fetch next from ins_cursor into @Name, @ProductCode, @Description -- At this point, the data from the first row
                                                                          -- is in your local variables.
    
        -- Move through the table with the @@FETCH_STATUS=0 
        while @@FETCH_STATUS=0
        Begin
    
             -- Execute the insert to push this data into Salesforce. Replace "SF_LINK" with the name of your Salesforce Linked Server.
            exec ('insert into Product2 ( "Name", ProductCode, Description ) Values (?, ?, ?)', @Name, @ProductCode ,@Description ) at SF_LINK
    
             -- Once the execution has taken place, you fetch the next row of data from your local table.
            fetch next from ins_cursor into @Name, @ProductCode, @Description
        End
    
        -- When all the rows have inserted you must close and deallocate the cursor.
        -- Failure to do this will not let you re-use the cursor.    
        close ins_cursor
        deallocate ins_cursor

Siehe auch

  • Tipps zur Verwendung von SQL Server mit Salesforce