pub struct ChangeTracking;Expand description
Helper functions for Change Tracking operations.
Implementations§
Source§impl ChangeTracking
impl ChangeTracking
Sourcepub const fn current_version_sql() -> &'static str
pub const fn current_version_sql() -> &'static str
Generate SQL to get the current change tracking version.
Returns the global change tracking version number.
§Example
use mssql_client::change_tracking::ChangeTracking;
let sql = ChangeTracking::current_version_sql();
assert_eq!(sql, "SELECT CHANGE_TRACKING_CURRENT_VERSION()");Sourcepub fn min_valid_version_sql(table_name: &str) -> String
pub fn min_valid_version_sql(table_name: &str) -> String
Generate SQL to get the minimum valid version for a table.
If a client’s last sync version is less than this, it must perform a full re-sync instead of incremental sync.
§Arguments
table_name- The name of the table
§Example
use mssql_client::change_tracking::ChangeTracking;
let sql = ChangeTracking::min_valid_version_sql("Products");
assert!(sql.contains("CHANGE_TRACKING_MIN_VALID_VERSION"));Sourcepub fn column_in_mask_sql(
table_name: &str,
column_name: &str,
mask_variable: &str,
) -> Result<String, Error>
pub fn column_in_mask_sql( table_name: &str, column_name: &str, mask_variable: &str, ) -> Result<String, Error>
Generate SQL to check if a column is in a change mask.
Used to determine which specific columns changed in an update operation.
§Arguments
table_name- The table namecolumn_name- The column to checkmask_variable- The name of the variable holding the change mask
§Errors
Returns Error::InvalidIdentifier
if mask_variable is not a valid SQL Server identifier — unlike the
name arguments (which are escaped into quoted literals), the variable
is spliced into the statement verbatim, so it must be validated.
§Example
use mssql_client::change_tracking::ChangeTracking;
let sql = ChangeTracking::column_in_mask_sql("Products", "Price", "@mask").unwrap();
assert!(sql.contains("CHANGE_TRACKING_IS_COLUMN_IN_MASK"));Sourcepub fn enable_database_sql(
database_name: &str,
retention_days: u32,
auto_cleanup: bool,
) -> String
pub fn enable_database_sql( database_name: &str, retention_days: u32, auto_cleanup: bool, ) -> String
Generate SQL to enable change tracking on a database.
§Arguments
database_name- The database nameretention_days- How long to retain change dataauto_cleanup- Whether to automatically clean up old data
§Example
use mssql_client::change_tracking::ChangeTracking;
let sql = ChangeTracking::enable_database_sql("MyDB", 2, true);
assert!(sql.contains("SET CHANGE_TRACKING = ON"));Sourcepub fn enable_table_sql(table_name: &str, track_columns_updated: bool) -> String
pub fn enable_table_sql(table_name: &str, track_columns_updated: bool) -> String
Generate SQL to enable change tracking on a table.
§Arguments
table_name- The table nametrack_columns_updated- Whether to track which columns were updated
§Example
use mssql_client::change_tracking::ChangeTracking;
let sql = ChangeTracking::enable_table_sql("Products", true);
assert!(sql.contains("ENABLE CHANGE_TRACKING"));Sourcepub fn disable_table_sql(table_name: &str) -> String
pub fn disable_table_sql(table_name: &str) -> String
Generate SQL to disable change tracking on a table.
Sourcepub fn disable_database_sql(database_name: &str) -> String
pub fn disable_database_sql(database_name: &str) -> String
Generate SQL to disable change tracking on a database.