sql >> データベース >  >> RDS >> Sqlserver

カーソルを使用してSQLServerデータをSalesforceに挿入する

    このブログでは、ローカルSQLServerテーブルからSalesforceにデータを転送する例を紹介しています。 Salesforce.com ODBCドライバーを使用して、SalesforceProduct2テーブルに3つのレコードを挿入しています。

    1. Salesforceに接続するリンクサーバーを構成します。
    2. SQL Server Management Studioで、リンクサーバー>リンクサーバーのプロパティ>サーバーオプション>RPC出力を変更します Trueに設定します。
    3. 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')

      必要な権限があれば、Product2テーブルの任意の列にデータを挿入できます。

    4. 次の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

    関連項目

    • SalesforceでSQLServerを使用するためのヒント

    1. 最新のMicrosoftAccess機能に興味がありますか?

    2. SQLDeveloperでのSQLモニタリング

    3. 文字列の分割:T-SQLが少なくなりました

    4. SQLサーバーでのストアドプロシージャのスケジュールされた実行