Executing Queries
This section describes how to execute queries to the Salesforce linked server from any tool that can connect to SQL Server.
When executing queries from a linked server, use a two-part name, in the format:
[<Linked Server Name>].[<DSN Name>].[<Schema Name>].[<Table Name>]where
- Linked Server Name is the name of the linked server that you created. This is normally the service name.
- DSN Name is the name of the data source.
- Schema Name is the name of the system schema or user-defined schema.
- Table Name is the name of the table you are copying data from.
SELECT Statements
To create new records:SELECT * FROM [Linked Server Name].[CData JIRA Sys].[JIRA].[Projects] WHERE Id = '10000'Note: If the data source supports case-sensitive identifiers, it is not possible to query tables of the same name that only vary by casing (ex: Account and ACCOUNT in the same schema). This is due to the fact that SQL Server treats identifiers as case-insensitive, so multiple tables of the same name in a single schema are fundamentally incompatible with the SQL Server protocols.
INSERT, UPDATE, and DELETE Statements
To insert, update, or delete a single row of data against a writeable database, use the four-part name. For example:
INSERT INTO [Linked Server Name].[CData JIRA Sys].[JIRA].[Projects] (Id) VALUES ('10000');
Bulk Operations
To perform bulk operations against data sources that permit writes, use syntax similar to the following:To run a bulk INSERT using a SELECT query in place of a VALUES list:
INSERT INTO [Linked Server Name].[CData JIRA Sys].[JIRA].[Projects] ([Id]) SELECT [Id] from [CData].[dbo].[Local_Projects]To run a bulk UPDATE using a JOIN with a local table:
UPDATE [Linked Server Name].[CData JIRA Sys].[JIRA].[Projects] SET [Projects].[Id] = CData.dbo.[Local_Projects].[Local_Id] FROM CData.dbo.[Local_Projects] INNER JOIN [Linked Server Name].[CData JIRA Sys].[JIRA].[Projects] ON CData.dbo.[Local_Projects].[Id] = [Projects].[Id]To run a bulk DELETE using the IN filter with sub-SELECT query.
DELETE FROM [Linked Server Name].[CData JIRA Sys].[JIRA].[Projects] WHERE [Id] IN (SELECT [Id] FROM CData.dbo.Local_Projects)
Execute Stored Procedures
Before you can execute stored procedures, you must first enable RPC and RPC Out in the settings for the linked server.
After RPC and RPC Out are enabled, use these commands to run the stored procedure:
DECLARE @RunStoredProcSQL VARCHAR(1000); SET @RunStoredProcSQL = 'EXEC SelectEntries ObjectName=''Account'''; EXEC (@RunStoredProcSQL) AT [Linked Server Name];