Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Inserimento di dati di SQL Server in Salesforce con un cursore

Questo blog fornisce un esempio di trasferimento di dati da una tabella SQL Server locale a Salesforce. Stiamo utilizzando il driver ODBC di Salesforce.com per inserire tre record nella tabella Salesforce Product2.

  1. Configura un server collegato che si connette a Salesforce.
  2. In SQL Server Management Studio, modificare Server collegato> Proprietà server collegato> Opzioni server> Uscita RPC impostazione su Vero.
  3. Crea questa tabella 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')

    Puoi inserire dati in qualsiasi colonna della tabella Product2, supponendo che tu disponga delle autorizzazioni necessarie.

  4. Esegui il seguente SQL:
    -- 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

Vedi anche

  • Suggerimenti per l'utilizzo di SQL Server con Salesforce