sql >> Base de Datos >  >> RDS >> Sqlserver

Insertar datos de SQL Server en Salesforce con un cursor

Este blog proporciona un ejemplo de transferencia de datos desde una tabla de SQL Server local a Salesforce. Estamos utilizando el controlador ODBC de Salesforce.com para insertar tres registros en la tabla Product2 de Salesforce.

  1. Configure un servidor vinculado que se conecte a Salesforce.
  2. En SQL Server Management Studio, cambie Servidor vinculado> Propiedades del servidor vinculado> Opciones del servidor> Salida RPC configurando en Verdadero.
  3. Cree esta tabla en 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')

    Puede insertar datos en cualquiera de las columnas de la tabla Product2, suponiendo que tenga los permisos necesarios.

  4. Ejecute el siguiente 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

Ver también

  • Consejos para usar SQL Server con Salesforce