Edit

sp_wait_for_database_copy_sync (Active geo-replication)

Applies to: Azure SQL Database Azure SQL Managed Instance

This procedure is scoped to an Active Geo-Replication relationship between a primary and secondary. Calling the sys.sp_wait_for_database_copy_sync causes the application to wait until all committed transactions are replicated and acknowledged by the active secondary database. Run sys.sp_wait_for_database_copy_sync on only the primary database.

Syntax

sp_wait_for_database_copy_sync [ @target_server = ] 'server_name'
     , [ @target_database = ] 'database_name'

Arguments

[ @target_server = ] 'server_name'

The name of the Azure SQL Database server that hosts the active secondary database. server_name is sysname, with no default.

[ @target_database = ] 'database_name'

The name of the active secondary database. database_name is sysname, with no default.

Return code values

Returns 0 for success or an error number for failure.

The most likely error conditions are as follows:

  • The server name or database name is missing.

  • The link can't be found to the specified server name or database.

  • Interlink connectivity has been lost, and sys.sp_wait_for_database_copy_sync will return after the connection timeout.

Permissions

Any user in the primary database can call this system stored procedure. The login must be a user in both the primary and active secondary databases.

Remarks

All transactions committed before a sp_wait_for_database_copy_sync call are sent to the active secondary database.

Examples

The following example invokes sp_wait_for_database_copy_sync to ensure that all transactions are committed to the primary database, AdventureWorks, get sent to its active secondary database on the target server serverSecondary.

Note

In Azure SQL Database and SQL database in Microsoft Fabric, the USE statement isn't available. Instead, connect directly to intended database and run the rest of the code sample.

USE AdventureWorks;
GO

EXECUTE sys.sp_wait_for_database_copy_sync
    @target_server = N'serverSecondary',
    @target_database = N'AdventureWorks';
GO