This post covers, in detail, system object changes in SQL Server 2025 versus 2022 that I was able to find, as well as differences in the install kit.
I saw Brent Ozar’s recent post on the new objects in SQL Server 2025, and decided to dig a little deeper and provide a more in-depth comparison with SQL Server 2022.
Table of contents
Comparing the installation kit
Starting out with some quick PowerShell to compare the files between the 2022 and the 2025 Preview installation kits.
For this, I mounted the 2022 .ISO in my virtual DVD drive and I’m comparing its contents with the ones extracted from SQL Server 2025’s .ISO downloaded for my previous blog post.
File and folder counts
1 2 3 4 5 | $2022 = Get-ChildItem "G:\" -Recurse | Select-Object -ExpandProperty Name $2025 = Get-ChildItem "F:\VirtualBoxVMs\VMShares\SQL2025CTP2" -Recurse | Select-Object -ExpandProperty Name $2022.Count $2025.Count |
SQL Server 2022 | SQL Server 2025 |
---|---|
226 | 232 |
New and removed files
1 | Compare-Object -ReferenceObject $2022 -DifferenceObject $2025 |
The output also shows folders, but I’m just focusing on the files themselves.
New files in 2025 | Files removed in 2025 |
---|---|
clang_rt.asan_dynamic-i386.dll | MasterDataServicesLoc.msi |
concrt140.dll | sql_dq_loc.msi |
vcruntime140_threads.dll | sql_dqc_loc.msi |
msodbcsql.msi | AttunityOracleCdcDesigner.msi |
vsta_setup_2022.exe | AttunityOracleCdcService.msi |
clang_rt.asan_dynamic-x86_64.dll | vsta_setup_2019.exe |
concrt140.dll | DefaultSetup.ini |
InstAPI170.dll | InstAPI160.dll |
Microsoft.Data.SqlClient.dll | Microsoft.IdentityModel.Clients.ActiveDirectory.dll |
msvcp140_1.dll | MasterDataServices.msi |
msvcp140_2.dll | sql_dq.msi |
msvcp140_atomic_wait.dll | sql_dqc.msi |
msvcp140_codecvt_ids.dll | |
msvcp140.dll | |
vccorlib140.dll | |
vcruntime140_threads.dll | |
vcruntime140.dll |
In case anyone’s curios to see how the output looks, here it is:

Checking for system object changes between SQL Server 2025 and 2022
For this part I’ve created a linked server connection on my SQL Server 2022 instance to my SQL Server 2025 Preview one.
I initially wanted to put the script in this post, but it got so big that it was easier to have it on GitHub instead.
You can find the script I put together to get and massage the data, here.
Just note that it looks like it was written by a raccoon in the midst of a caffeine binge.
For anyone who might be curios, I’ve used some lazy PowerShell to dump the object definitions for the new and modified objects.
You can find them in the sys_obj_code folder in my blog’s GitHub repo.
Instance versions used in this comparison
- 2022 – Microsoft SQL Server 2022 (RTM-CU19) (KB5054531) – 16.0.4195.2 (X64)
- 2025 – Microsoft SQL Server 2025 (CTP2.0) – 17.0.700.9 (X64)
System object changes summary
Object Type | New | Modified | Only object_id changed* | LoC added | LoC removed | Total objects |
---|---|---|---|---|---|---|
FN | 1 | 1 | 0 | 66 | 0 | 2 |
IF | 3 | 1 | 0 | 83 | -40 | 4 |
IT | 5 | 0 | 10 | N/A | N/A | 15 |
P | 45 | 58 | 0 | 5338 | -339 | 103 |
V | 41 | 45 | 1 | 1187 | -8 | 87 |
X | 65 | 0 | 0 | N/A | N/A | 65 |
* The object’s object_id has changed without any noticeable code or column changes.
LoC = Lines of Code
New data types
This one’s the simplest table you’ll see from this point on.
Name | system_type_id |
---|---|
json | 244 |
vector | 165 |
Functions
New
Name | Code size |
---|---|
sys.fn_has_change_feed_permissions | lines: 28; characters: 738 |
Modified
Name | Code size changes | object_id changed |
---|---|---|
sys.fn_MSrepl_map_resolver_clsid | lines: +38; characters: +2078 | No |
Internal Functions
New
Name | Code size |
---|---|
sys.dm_db_column_store_redirected_lobs | lines: 10; characters: 229 |
sys.dm_db_exec_cursors | lines: 6; characters: 140 |
sys.fn_get_audit_file_v2 | lines: 67; characters: 1712 |
Modified
Name | Code size changes | object_id changed |
---|---|---|
sys.fn_get_audit_file | lines: -40; characters: -1112 | No |
Note that the change consists of making sys.fn_get_audit_file
work as a wrapper for sys.fn_get_audit_file_v2
.
I’m guessing this was done for backwards compatibility purposes.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | CREATE FUNCTION sys.fn_get_audit_file ( @file_pattern nvarchar(260), @initial_file_name nvarchar(260) = NULL, @audit_record_offset bigint = NULL) RETURNS table AS RETURN ( SELECT * FROM sys.fn_get_audit_file_v2( @file_pattern, @initial_file_name, @audit_record_offset, default, default) ) |
Stored Procedures
New system stored procedures
Name | Code size |
---|---|
sys.sp_add_object_to_event_stream_group | lines: 322; characters: 12559 |
sys.sp_auto_tuning_cleanup_index_recommendations | lines: 105; characters: 3442 |
sys.sp_auto_tuning_create_workflow | lines: 79; characters: 2329 |
sys.sp_auto_tuning_index_recommendation_verification_report | lines: 267; characters: 14189 |
sys.sp_auto_tuning_publish_index_recommendation | lines: 253; characters: 10817 |
sys.sp_auto_tuning_update_create_index_workflow | lines: 78; characters: 2840 |
sys.sp_auto_tuning_update_index_recommendation | lines: 115; characters: 6393 |
sys.sp_auto_tuning_update_workflow | lines: 67; characters: 2064 |
sys.sp_backfill_discoveredtableproperties | lines: 61; characters: 3516 |
sys.sp_backfill_manageddeltatables_tableclassification | lines: 47; characters: 1844 |
sys.sp_change_feed_enable_table_after_reseed | lines: 48; characters: 1644 |
sys.sp_change_feed_enable_tables_after_reseed | lines: 79; characters: 2444 |
sys.sp_change_feed_reseed_db_init | lines: 39; characters: 1066 |
sys.sp_change_feed_reseed_db_start_replication | lines: 27; characters: 898 |
sys.sp_change_feed_reseed_table | lines: 52; characters: 1706 |
sys.sp_cleanup_dropped_table_metadata | lines: 91; characters: 3820 |
sys.sp_cleanup_expired_checkpoint_file_metadata | lines: 23; characters: 857 |
sys.sp_cleanup_expired_log_file_metadata | lines: 23; characters: 759 |
sys.sp_create_event_stream_group | lines: 438; characters: 17465 |
sys.sp_detour_top_memory_allocations | lines: 43; characters: 2845 |
sys.sp_disable_event_stream | lines: 406; characters: 17299 |
sys.sp_drop_discoveredtableproperties | lines: 14; characters: 327 |
sys.sp_drop_event_stream_group | lines: 8; characters: 168 |
sys.sp_enable_event_stream | lines: 343; characters: 12743 |
sys.sp_fulltext_delete_thesaurus | lines: 117; characters: 2975 |
sys.sp_fulltext_load_thesaurus | lines: 160; characters: 6389 |
sys.sp_get_expired_checkpoint_file_metadata | lines: 34; characters: 1204 |
sys.sp_get_expired_log_file_metadata | lines: 30; characters: 960 |
sys.sp_get_fork_guids | lines: 14; characters: 325 |
sys.sp_get_oldest_active_transaction_time | lines: 8; characters: 333 |
sys.sp_get_top_internal_table | lines: 17; characters: 374 |
sys.sp_has_change_feed_permissions | lines: 48; characters: 1327 |
sys.sp_help_change_feed_settings | lines: 78; characters: 2877 |
sys.sp_help_change_feed_table_groups | lines: 107; characters: 3447 |
sys.sp_help_fabric_mirroring_table_groups | lines: 47; characters: 1309 |
sys.sp_help_fabric_mirroring_table | lines: 112; characters: 4342 |
sys.sp_help_fabric_mirroring | lines: 62; characters: 2891 |
sys.sp_migrate_manageddeltatablecheckpoints | lines: 44; characters: 1853 |
sys.sp_migrate_manageddeltatableforks | lines: 39; characters: 1445 |
sys.sp_migrate_manageddeltatablelogfiles | lines: 41; characters: 1534 |
sys.sp_migrate_manageddeltatables | lines: 41; characters: 1800 |
sys.sp_predict_next_activity | lines: 81; characters: 3233 |
sys.sp_remove_object_from_event_stream_group | lines: 9; characters: 240 |
sys.sp_set_managed_delta_table_internals_migration_state | lines: 18; characters: 554 |
sys.sp_update_warehouse_clone_metadata | lines: 135; characters: 4621 |
Modified system stored procedures
Name | Code size changes | object_id changed |
---|---|---|
sys.sp_adddistpublisher | lines: 0; characters: +1 | No |
sys.sp_addmergearticle | lines: +12; characters: +357 | No |
sys.sp_catalogs_rowset | lines: 0; characters: +6 | No |
sys.sp_catalogs_rowset2 | lines: 0; characters: +6 | No |
sys.sp_cdc_add_job | lines: +20; characters: +724 | No |
sys.sp_cdc_change_job | lines: 0; characters: +9 | No |
sys.sp_cdc_cleanup_change_table | lines: 0; characters: 0 | No |
sys.sp_cdc_disable_db | lines: +136; characters: +5510 | No |
sys.sp_cdc_disable_table | lines: +6; characters: +207 | No |
sys.sp_cdc_drop_job | lines: 0; characters: +9 | No |
sys.sp_cdc_enable_db | lines: +20; characters: +642 | No |
sys.sp_cdc_enable_table | lines: +13; characters: +348 | No |
sys.sp_cdc_help_jobs | lines: 0; characters: +9 | No |
sys.sp_cdc_scan | lines: 0; characters: +30 | No |
sys.sp_cdc_vupgrade | lines: +15; characters: +582 | No |
sys.sp_change_feed_configure_parameters | lines: +123; characters: +3828 | No |
sys.sp_change_feed_create_table_group | lines: -182; characters: -4459 | No |
sys.sp_change_feed_disable_db | lines: -20; characters: -238 | No |
sys.sp_change_feed_disable_table | lines: +5; characters: +132 | No |
sys.sp_change_feed_drop_table_group | lines: +14; characters: +634 | No |
sys.sp_change_feed_enable_db | lines: -43; characters: -647 | No |
sys.sp_change_feed_enable_table | lines: -23; characters: -223 | No |
sys.sp_change_feed_vupgrade | lines: +167; characters: +5997 | No |
sys.sp_change_users_login | lines: +3; characters: +215 | No |
sys.sp_changeobjectowner | lines: +3; characters: +139 | No |
sys.sp_check_trace_enabled_globally | lines: 0; characters: -3 | No |
sys.sp_db_gb18030_unicode_collations | lines: -32; characters: -920 | No |
sys.sp_dbcmptlevel | lines: +2; characters: +133 | No |
sys.sp_discover_trident_table | lines: -16; characters: -496 | No |
sys.sp_estimate_data_compression_savings | lines: +120; characters: +8409 | No |
sys.sp_flush_commit_table_on_demand | lines: +13; characters: +402 | No |
sys.sp_flush_commit_table | lines: +21; characters: +994 | No |
sys.sp_fulltext_load_thesaurus_file | lines: +22; characters: +1174 | No |
sys.sp_help_change_feed_table | lines: +51; characters: +3695 | No |
sys.sp_help_change_feed | lines: +46; characters: +3820 | No |
sys.sp_help_spatial_geography_histogram | lines: 0; characters: +17 | No |
sys.sp_help_spatial_geometry_histogram | lines: 0; characters: +17 | No |
sys.sp_help | lines: 0; characters: +18 | No |
sys.sp_helpindex | lines: 0; characters: +9 | No |
sys.sp_invoke_external_rest_endpoint | lines: +63; characters: +2197 | No |
sys.sp_MSadd_subscriber_info | lines: -6; characters: -180 | No |
sys.sp_MSadd_subscription | lines: 0; characters: +14 | No |
sys.sp_MScdc_capture_job | lines: +9; characters: +300 | No |
sys.sp_MScdc_cleanup_job | lines: 0; characters: +9 | No |
sys.sp_MSchange_feed_ddl_event | lines: -1; characters: -19 | No |
sys.sp_MSsetupnosyncsubwithlsnatdist_helper | lines: 0; characters: +14 | No |
sys.sp_oledb_deflang | lines: 0; characters: +6 | No |
sys.sp_rename | lines: +179; characters: +7959 | No |
sys.sp_set_trident_data_location | lines: -12; characters: -475 | No |
sys.sp_subscription_cleanup | lines: 0; characters: +9 | No |
sys.sp_tableoption | lines: 0; characters: +6 | No |
sys.sp_updatestats | lines: 0; characters: +8 | No |
sys.sp_vupgrade_mergetables | lines: 0; characters: 0 | No |
sys.sp_who2 | lines: -4; characters: -183 | No |
sys.sp_xtp_objects_present | lines: +1; characters: +54 | No |
sys.sp_xtp_slo_can_downgrade | lines: +1; characters: +50 | No |
sys.sp_xtp_slo_downgrade_finished | lines: +2; characters: +52 | No |
sys.sp_xtp_slo_prepare_to_downgrade | lines: +1; characters: +50 | No |
Note about objects modified with 0 added/removed lines and characters
It’s not a fluke, it’s just that the changes consist of an equal amount of characters.
sys.sp_cdc_cleanup_change_table
The value of one parameter has been changed from @threshold bigint = 5000,
in 2022 to @threshold bigint = 4999,
in 2025
sys.sp_vupgrade_mergetables
The following lines have been changed from:
1 2 3 4 5 6 7 8 9 | select @additive_resolver_clsid = '{6ACA9C22-3CC2-4947-9D5F-525A1F9E8B45}' select @average_resolver_clsid = '{F09F3613-7C9A-481F-952D-84B5E1060AC6}' select @download_resolver_clsid = '{B4CA61C8-7495-4F5A-9EE1-AEAF685693C8}' select @max_resolver_clsid = '{608EB36F-373A-4485-A1AA-A21DE806FDF1}' select @mergetxt_resolver_clsid = '{C6CE3676-53F4-47B5-B3AF-1BB44996192E}' select @min_resolver_clsid = '{CCC9BC97-EC98-4210-9BA0-2FE28C6DE077}' select @subwins_resolver_clsid = '{BB6E90FC-FFE5-4256-9906-56BDFD7F1CAB}' select @upload_resolver_clsid = '{482BCCD2-3FEB-4CA3-84C6-A380E3AB10E8}' select @sp_resolver_clsid = '{D2701A2D-9D79-41BC-B7C4-1F2B5CF891B7}' |
To:
1 2 3 4 5 6 7 8 9 | select @additive_resolver_clsid = '{0D64B1B7-1E18-48CF-A7E8-7F6D9861DD05}' select @average_resolver_clsid = '{A110D612-7FB7-4471-805D-0C4FD58403D3}' select @download_resolver_clsid = '{56B0953F-DDF6-423E-BC15-0CCE657088FA}' select @max_resolver_clsid = '{915051D3-45C3-44A2-9EEC-3BA8FA575B7C}' select @mergetxt_resolver_clsid = '{3310B051-64FC-47C6-A7C2-03CB54BB8C54}' select @min_resolver_clsid = '{8D22F39E-EEBF-4A2C-9698-8AA84152A2D2}' select @subwins_resolver_clsid = '{20C8E8F2-1017-49E8-98E5-C143833D5626}' select @upload_resolver_clsid = '{790DD78E-636F-4CA9-A6F9-AAB1EACCA3DB}' select @sp_resolver_clsid = '{709A9DEE-97DA-4486-A479-B94EC8229D21}' |
System stored procedures sys.sp_adddistpublisher
and sys.sp_check_trace_enabled_globally
only have white space changes (spaces converted to tabs).
Views
New system views
Name | Code size |
---|---|
sys.dm_database_backup_lineage | lines: 16; characters: 883 |
sys.dm_db_internal_auto_tuning_create_index_recommendations | lines: 26; characters: 1340 |
sys.dm_db_internal_auto_tuning_recommendation_impact_query_metrics | lines: 18; characters: 584 |
sys.dm_db_internal_auto_tuning_recommendation_metrics | lines: 42; characters: 1350 |
sys.dm_db_internal_auto_tuning_workflows | lines: 17; characters: 466 |
sys.dm_db_internal_automatic_tuning_version | lines: 10; characters: 371 |
sys.dm_db_logical_index_corruptions | lines: 1; characters: 116 |
sys.dm_db_xtp_undeploy_status | lines: 5; characters: 103 |
sys.dm_exec_ce_feedback_cache | lines: 9; characters: 180 |
sys.dm_exec_distributed_tasks | lines: 9; characters: 433 |
sys.dm_external_governance_synchronizing_objects | lines: 4; characters: 152 |
sys.dm_external_policy_excluded_role_members | lines: 4; characters: 135 |
sys.dm_feature_switches | lines: 6; characters: 97 |
sys.dm_hadr_internal_availability_groups | lines: 24; characters: 718 |
sys.dm_hadr_internal_availability_replicas | lines: 46; characters: 2261 |
sys.dm_io_network_traffic_stats | lines: 14; characters: 332 |
sys.dm_os_memory_allocations_filtered | lines: 5; characters: 241 |
sys.dm_os_memory_health_history | lines: 10; characters: 240 |
sys.dm_os_memory_nodes_processor_groups | lines: 4; characters: 128 |
sys.dm_os_parent_block_descriptors | lines: 4; characters: 118 |
sys.dm_pal_ring_buffers | lines: 4; characters: 96 |
sys.dm_server_managed_identities | lines: 4; characters: 111 |
sys.external_models | lines: 79; characters: 2253 |
sys.external_table_schema_changed_mdsync | lines: 13; characters: 465 |
sys.information_protection_label_mapping | lines: 13; characters: 429 |
sys.json_index_paths | lines: 9; characters: 275 |
sys.syscolumn_store_segments_2020 | lines: 44; characters: 3092 |
sys.syscolumns_2019 | lines: 60; characters: 5848 |
sys.sysdatabase_principals_2021 | lines: 40; characters: 1766 |
sys.sysexternal_data_sources_2016 | lines: 15; characters: 490 |
sys.sysexternal_data_sources_2017 | lines: 15; characters: 498 |
sys.sysexternal_file_formats_2016 | lines: 17; characters: 608 |
sys.sysexternal_tables_2016 | lines: 44; characters: 1576 |
sys.sysquery_context_settings_2016 | lines: 20; characters: 581 |
sys.sysquery_store_query_hints_2019 | lines: 36; characters: 1416 |
sys.sysquery_store_runtime_stats_2016 | lines: 86; characters: 4078 |
sys.sysquery_store_runtime_stats_2017 | lines: 107; characters: 5495 |
sys.sysquery_store_runtime_stats_2019 | lines: 114; characters: 6002 |
sys.sysquery_store_runtime_stats_interval_2016 | lines: 7; characters: 210 |
sys.sysquery_store_wait_stats_2019 | lines: 31; characters: 1041 |
sys.sysserver_principals_2021 | lines: 20; characters: 930 |
Modified system views
Name | Code size changes | object_id changed |
---|---|---|
INFORMATION_SCHEMA.COLUMNS | lines: +2; characters: +77 | No |
sys.assembly_types | lines: 0; characters: +1 | No |
sys.availability_groups | lines: +1; characters: +47 | No |
sys.availability_replicas | lines: +1; characters: +47 | No |
sys.change_tracking_databases | lines: 0; characters: +12 | No |
sys.column_store_dictionaries | lines: 0; characters: +88 | No |
sys.column_store_segments | lines: 0; characters: +259 | No |
sys.columns | lines: +6; characters: +682 | No |
sys.database_automatic_tuning_configurations | lines: 0; characters: -2 | No |
sys.databases | lines: +9; characters: +817 | No |
sys.dm_change_feed_errors | lines: 0; characters: +48 | No |
sys.dm_column_store_object_pool | lines: +2; characters: +91 | No |
sys.dm_database_backups | lines: +10; characters: +586 | No |
sys.dm_exec_query_memory_grants | lines: +1; characters: +35 | No |
sys.dm_exec_requests_history | lines: +1; characters: +71 | No |
sys.dm_external_provider_certificate_info | lines: 0; characters: 0 | Yes |
sys.dm_hadr_availability_replica_states | lines: +12; characters: +308 | No |
sys.dm_hadr_database_replica_states | lines: +1; characters: +35 | No |
sys.dm_os_performance_counters | lines: +4; characters: +130 | No |
sys.dm_resource_governor_resource_pools | lines: +1; characters: +30 | No |
sys.dm_resource_governor_workload_groups | lines: +8; characters: +252 | No |
sys.dm_tran_database_transactions | lines: +1; characters: +40 | No |
sys.external_governance_classification_attributes | lines: -1; characters: -12 | No |
sys.external_governance_classifications_mapping | lines: -1; characters: -3 | No |
sys.external_governance_classifications | lines: 0; characters: +23 | No |
sys.external_governance_sensitivity_classifications | lines: -1; characters: -12 | No |
sys.external_governance_sensitivity_labels_mapping | lines: -1; characters: -12 | No |
sys.external_governance_sensitivity_labels | lines: -1; characters: -12 | No |
sys.filegroups | lines: 0; characters: +10 | No |
sys.fulltext_indexes | lines: +2; characters: +154 | No |
sys.index_columns | lines: +1; characters: +333 | No |
sys.internal_partitions | lines: 0; characters: +31 | No |
sys.parameters | lines: +6; characters: +708 | No |
sys.query_store_plan_feedback | lines: +1; characters: +49 | No |
sys.query_store_plan_forcing_locations | lines: +16; characters: +484 | No |
sys.query_store_plan | lines: +1; characters: +52 | No |
sys.resource_governor_workload_groups | lines: +21; characters: +1053 | No |
sys.sensitivity_classifications | lines: -2; characters: -125 | No |
sys.stats | lines: +17; characters: +1076 | No |
sys.sysdatabases | lines: 0; characters: +30 | No |
sys.system_columns | lines: +3; characters: +69 | No |
sys.system_internals_partition_columns | lines: +3; characters: +206 | No |
sys.system_objects | lines: +1; characters: +93 | No |
sys.system_parameters | lines: +3; characters: +69 | No |
sys.table_types | lines: 0; characters: +1 | No |
sys.types | lines: -1; characters: 0 | No |
I’m pretty sure you’ve noticed something interesting about sys.assembly_types
and sys.table_types
.
Namely, a code change of 1 additional character.
In both cases a $ was added at the end of a base table.
sys.dm_external_provider_certificate_info
only has a change in terms of object_id.
Its object_id being changed from from -669 in SQL Server 2022, to -670 in SQL Server 2025.
The number and names of its columns are unchanged.
The system view sys.database_automatic_tuning_configurations
only has white space chnages (conversion from spaces to tabs).
Columns added to views
Name | Column(s) |
---|---|
sys.columns | vector_dimensions (SMALLINT), vector_base_type (TINYINT), vector_base_type_desc (NVARCHAR) |
sys.databases | is_data_lake_replication_enabled (BIT), is_event_stream_enabled (BIT), data_compaction (TINYINT), data_compaction_desc (NVARCHAR), data_lake_log_publishing (TINYINT), data_lake_log_publishing_desc (NVARCHAR), is_vorder_enabled (BIT), is_proactive_statistics_refresh_on (BIT), is_optimized_locking_on (BIT) |
sys.dm_database_backups | in_retention (BIT) |
sys.dm_exec_query_memory_grants | query_hash (BINARY), query_plan_hash (BINARY) |
sys.dm_hadr_availability_replica_states | is_internal (BIT) |
sys.dm_hadr_database_replica_states | is_internal (BIT) |
sys.dm_resource_governor_resource_pools | total_cpu_usage_actual_ms (BIGINT) |
sys.dm_resource_governor_workload_groups | total_cpu_usage_actual_ms (BIGINT), cache_memory_kb (BIGINT), compile_memory_kb (BIGINT), used_memory_kb (BIGINT), cap_cpu_percent (DECIMAL), tempdb_data_space_kb (BIGINT), peak_tempdb_data_space_kb (BIGINT), total_tempdb_data_limit_violation_count (BIGINT) |
sys.dm_tran_database_transactions | database_transaction_first_repl_lsn (NUMERIC) |
sys.fulltext_indexes | data_space_id (INT) |
sys.index_columns | data_clustering_ordinal (TINYINT) |
sys.parameters | vector_dimensions (SMALLINT), vector_base_type (TINYINT), vector_base_type_desc (NVARCHAR) |
sys.query_store_plan_forcing_locations | timestamp (DATETIME), plan_forcing_type (INT), plan_forcing_type_desc (NVARCHAR) |
sys.resource_governor_workload_groups | group_max_tempdb_data_percent (FLOAT), group_max_tempdb_data_mb (FLOAT) |
sys.stats | replica_role_id (TINYINT), replica_role_desc (NVARCHAR), replica_name (SYSNAME) |
sys.system_columns | vector_dimensions (SMALLINT), vector_base_type (TINYINT), vector_base_type_desc (NVARCHAR) |
sys.system_internals_partition_columns | hobt_column_id (INT), is_csilocator (BIT), is_added_with_skip_segments (BIT) |
sys.system_parameters | vector_dimensions (SMALLINT), vector_base_type (TINYINT), vector_base_type_desc (NVARCHAR) |
Internal Tables
New internal tables
- sys.fulltext_thesaurus_metadata_table
- sys.fulltext_thesaurus_phrase_table
- sys.fulltext_thesaurus_state_table
- sys.pause_resume_history
- sys.plan_persist_ce_feedback_for_expressions
Modified internal tables
Name | object_id changed |
---|---|
sys.db_ledger_digest_locations | Yes |
sys.ledger_columns_history_internal_history | Yes |
sys.ledger_columns_history_internal | Yes |
sys.ledger_tables_history_internal_history | Yes |
sys.ledger_tables_history_internal | Yes |
sys.plan_persist_plan_forcing_locations | Yes |
sys.plan_persist_replicas | Yes |
sys.plan_persist_runtime_stats_v2 | Yes |
sys.plan_persist_wait_stats_v2 | Yes |
sys.sql_pools_table | Yes |
It doesn’t seem that these internal tables have had new columns added to them, just the object id was changed.
Extended Stored Procedures
New extended stored procedures
Name | DLL |
---|---|
sys.sp_auto_tuning_agent_notify_deactivate | (server internal) |
sys.sp_auto_tuning_try_build_internal_tables | (server internal) |
sys.sp_auto_tuning_validate_executable | (server internal) |
sys.sp_change_feed_is_slo_allowed | sp_change_feed_is_slo_allowed extended procedure |
sys.sp_change_feed_notify_table_only_reseed | sp_change_feed_notify_table_only_reseed extended procedure |
sys.sp_check_file_cleanup_eligibility | (server internal) |
sys.sp_check_inherited_metadata_files_cleanup_eligibility | (server internal) |
sys.sp_clear_dw_raft_cache | (server internal) |
sys.sp_clear_dw_session_configurations | (server internal) |
sys.sp_cslr_delete_entry | (server internal) |
sys.sp_cslr_upsert_entry | (server internal) |
sys.sp_deserialize_dw_configuration_overrides | (server internal) |
sys.sp_dw_attach_database | (server internal) |
sys.sp_dw_change_lease_order_id | (server internal) |
sys.sp_dw_database_state | (server internal) |
sys.sp_dw_database_update_onesecurity_mode | (server internal) |
sys.sp_dw_detach_database_for_deletion | (server internal) |
sys.sp_dw_detach_database | (server internal) |
sys.sp_dw_get_databases | (server internal) |
sys.sp_dw_get_fe_instance_cert_thumbprint | (server internal) |
sys.sp_dw_physical_upsert_commit_manifest_file | (server internal) |
sys.sp_dw_physical_upsert_create_and_populate_manifest_file | (server internal) |
sys.sp_dw_refresh_ext_table | (server internal) |
sys.sp_dw_session_override_perf_test | (server internal) |
sys.sp_dw_set_backup_policy_override | (server internal) |
sys.sp_dw_submit_configuration_change | (server internal) |
sys.sp_dw_trident_get_credential | (server internal) |
sys.sp_dw_truncate_table | (server internal) |
sys.sp_dw_workspace_state | (server internal) |
sys.sp_execute_dw_data_compaction | (server internal) |
sys.sp_get_database_backup_policy | (server internal) |
sys.sp_get_delta_lake_storage_properties | (server internal) |
sys.sp_get_dw_configuration_override | (server internal) |
sys.sp_get_dw_data_file | (server internal) |
sys.sp_get_dw_db_properties | (server internal) |
sys.sp_get_dw_manifest_file | (server internal) |
sys.sp_get_dw_table_cell_metrics | (server internal) |
sys.sp_get_dw_table_metrics | (server internal) |
sys.sp_get_managed_delta_table_log_files_metadata | (server internal) |
sys.sp_get_min_xdes | (server internal) |
sys.sp_get_native_shuffle_storage_path | (server internal) |
sys.sp_get_next_clone_islands | (server internal) |
sys.sp_inherit_session | (server internal) |
sys.sp_list_storage_items_in_test | (server internal) |
sys.sp_move_first_fixed_vlf | (server internal) |
sys.sp_override_dw_session_configuration | (server internal) |
sys.sp_persist_dw_raft_cache | (server internal) |
sys.sp_process_detour_memory_allocation_record | (server internal) |
sys.sp_refresh_dwworkspacegroup_fabric_property | (server internal) |
sys.sp_rehydrate_dw_raft_cache | (server internal) |
sys.sp_repair_logical_index_corruption | (server internal) |
sys.sp_rsc_evict_all | (server internal) |
sys.sp_rsc_regular_eviction | (server internal) |
sys.sp_serialize_dw_configuration_overrides | (server internal) |
sys.sp_set_discovered_table_properties | (server internal) |
sys.sp_set_external_script_runtime_version | (server internal) |
sys.sp_trident_cloud_clone_database | (server internal) |
sys.sp_trident_create_credential_to_access_test_data_storage | (server internal) |
sys.sp_trident_create_delta_checkpoint | (server internal) |
sys.sp_trident_create_distributed_delta_checkpoint | (server internal) |
sys.sp_trident_stats_staleness_detection | (server internal) |
sys.sp_trigger_expired_files_cleanup | (server internal) |
sys.sp_update_snapshot_database_time | (server internal) |
sys.sp_use_dw_db_by_physical_id | (server internal) |
sys.sp_vector_index_build_update_stats | (server internal) |
Modified extended stored procedures
None.
Note that for external stored procedures I cannot see the changes made since those are pretty much pointers to external DLL files.
So, I’ve just checked for changes in object_id.
Conclusion
This is probably my longest blog post (so far) so congrats on making it this far 🙂
I hope this detailed comparison of system object changes in SQL Server 2025 versus 2022 interesting to look throug. I know it was pretty fun to dig into.