SQL Server guide

Get document by ID


Returns a single document by its id. Filter with a WHERE clause on Id; the container must be the one from the connection or specified in WITH. For partitioned containers, partition key is inferred from the document when possible, or you can supply it in WITH.

Standard SQL query example

This is the base query accepted by the connector. To execute it in SQL Server, you have to pass it to the Data Gateway via a Linked Server. See how to accomplish this using the examples below.

SELECT * FROM TestContainer Where Id='user2'

Using OPENQUERY in SQL Server

SELECT * FROM OPENQUERY([LS_TO_COSMOS_DB_IN_GATEWAY], 'SELECT * FROM TestContainer Where Id=''user2''')

Using EXEC in SQL Server (handling larger SQL text)

The major drawback of OPENQUERY is its inability to incorporate variables within SQL statements. This often leads to the use of cumbersome dynamic SQL (with numerous ticks and escape characters).

Fortunately, starting with SQL 2005 and onwards, you can utilize the EXEC (your_sql) AT [LS_TO_COSMOS_DB_IN_GATEWAY] syntax.

DECLARE @MyQuery NVARCHAR(MAX) = 'SELECT * FROM TestContainer Where Id=''user2'''
EXEC (@MyQuery) AT [LS_TO_COSMOS_DB_IN_GATEWAY]