Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Inserindo dados do SQL Server no Salesforce com um cursor


Este blog fornece um exemplo de transferência de dados de uma tabela local do SQL Server para o Salesforce. Estamos usando o driver ODBC do Salesforce.com para inserir três registros na tabela Salesforce Product2.
  1. Configure um servidor vinculado que se conecte ao Salesforce.
  2. No SQL Server Management Studio, altere o Linked Server> Linked Server Properties> Server Options> RPC Out configuração como Verdadeiro.
  3. Crie esta tabela no 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')

    Você pode inserir dados em qualquer uma das colunas na tabela Product2, supondo que você tenha as permissões necessárias.
  4. Execute o seguinte 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

Veja também

  • Dicas para usar o SQL Server com o Salesforce