Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Insertion de données SQL Server dans Salesforce avec un curseur

Ce blog fournit un exemple de transfert de données d'une table SQL Server locale vers Salesforce. Nous utilisons le pilote ODBC Salesforce.com pour insérer trois enregistrements dans la table Salesforce Product2.

  1. Configurer un serveur lié qui se connecte à Salesforce.
  2. Dans SQL Server Management Studio, modifiez Serveur lié> Propriétés du serveur lié> Options du serveur> Sortie RPC paramètre sur Vrai.
  3. Créez cette table dans 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')

    Vous pouvez insérer des données dans n'importe quelle colonne de la table Product2, en supposant que vous disposez des autorisations nécessaires.

  4. Exécutez le SQL suivant :
    -- 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

Voir aussi

  • Conseils pour utiliser SQL Server avec Salesforce