## 🔍 **1.1 Inwentaryzacja – Wyniki z DMA**

### 🖥️ **Instancje serwera**
- **BISSEORSQLCLU01** – SQL Server 2014
- **WPSQL01** – SQL Server 2014

### 📦 **Bazy danych**
| Serwer | Baza danych | Rozmiar (MB) | Poziom zgodności | Status |
|--------|-------------|--------------|------------------|--------|
| BISSEORSQLCLU01 | `cerberus_eu` | 31426.88 | 120 | Completed |
| BISSEORSQLCLU01 | `cerberus_stats` | 167432.5 | 120 | Completed |
| BISSEORSQLCLU01 | `DBadminOp` | 1274.0 | 120 | Completed |
| BISSEORSQLCLU01 | `test` | 7.25 | 120 | Completed |
| BISSEORSQLCLU01 | `trade` | 165644.56 | 110 | Completed |
| WPSQL01 | `AdressdirektExternal` | 147433.94 | 120 | Completed |
| WPSQL01 | `clr_util` | 6.5 | 120 | Completed |
| WPSQL01 | `comhem` | 10537.44 | 120 | Completed |
| WPSQL01 | `infoadress` | 25274.31 | 120 | Completed |
| WPSQL01 | `Infoadress_worklkd` | 41620.0 | 120 | Completed |
| WPSQL01 | `infoadressplats` | 205969.25 | 120 | Completed |
| WPSQL01 | `infoadressplats_work` | 106671.5 | 120 | Completed |
| WPSQL01 | `infoadressplatsgis` | 4643.0 | 120 | Completed |
| WPSQL01 | `infoadressplatsgis_external` | 47777.94 | 120 | Completed |
| WPSQL01 | `infobatch` | 46757.44 | 120 | Completed |
| WPSQL01 | `Infobest` | 1039.62 | 120 | Completed |
| WPSQL01 | `infobest_urval` | 2345.06 | 120 | Completed |
| WPSQL01 | `rawdata` | 39230.06 | 120 | Completed |
| WPSQL01 | `tele` | 62384.94 | 120 | Completed |
| WPSQL01 | `tele2` | 12070.62 | 120 | Completed |
| WPSQL01 | `teleavis` | 5341.0 | 120 | Completed |
| WPSQL01 | `teleboniro` | 37252.88 | 120 | Completed |
| WPSQL01 | `teleinfo_external` | 182932.38 | 120 | Completed |
| WPSQL01 | `teleonlinews` | 23722.12 | 120 | Completed |
| WPSQL01 | `Track_Avisering` | 21867.5 | 120 | Completed |

---

## 📋 **1.2 Ocena środowiska docelowego**

### 🎯 **Cel migracji**
- **Źródło:** SQL Server 2014 (v12.0.6449.1)
- **Cel:** SQL Server 2022 na Windows Server (TargetPlatform: `SqlServerWindows2022`)

### ⚠️ **Problemy zgodności wykryte przez DMA**
#### 🔧 **Remove references to undocumented system tables**
- `DBadminOp` – Procedure `dbo.NCM_helpdb`
  - _Many system tables that were undocumented in prior releases have changed or no longer exist; therefore, using these tables may cause errors after upgrading to SQL Server 2008._
- `DBadminOp` – Procedure `dbo.NCM_helpdb`
  - _Many system tables that were undocumented in prior releases have changed or no longer exist; therefore, using these tables may cause errors after upgrading to SQL Server 2008._
- `DBadminOp` – Procedure `dbo.NCM_helpdb`
  - _Many system tables that were undocumented in prior releases have changed or no longer exist; therefore, using these tables may cause errors after upgrading to SQL Server 2008._
- `DBadminOp` – Procedure `dbo.NCM_helpdb`
  - _Many system tables that were undocumented in prior releases have changed or no longer exist; therefore, using these tables may cause errors after upgrading to SQL Server 2008._
- `DBadminOp` – Procedure `dbo.NCM_helpdb`
  - _Many system tables that were undocumented in prior releases have changed or no longer exist; therefore, using these tables may cause errors after upgrading to SQL Server 2008._
#### 🔧 **Unqualified Join(s) detected**
- `DBadminOp` – Procedure `dbo.ncm_instance_info`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `DBadminOp` – Procedure `dbo.ncm_instance_info`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `DBadminOp` – Procedure `dbo.ncm_instance_info`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `DBadminOp` – Procedure `dbo.ncm_instance_info`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `DBadminOp` – Procedure `dbo.ncm_instance_info`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `AdressdirektExternal` – Procedure `dbo.UpdateRenormed_IAPLID_BasunArbetsstalle_BA`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `AdressdirektExternal` – Procedure `dbo.UpdateRenormed_IAPLID_BasunArbetsstalle_BA`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `AdressdirektExternal` – Procedure `dbo.UpdateRenormed_IAPLID_BasunArbetsstalle_BA`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `AdressdirektExternal` – Procedure `dbo.UpdateRenormed_IAPLID_BasunArbetsstalle_BA`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `AdressdirektExternal` – Procedure `dbo.UpdateRenormed_IAPLID_BasunArbetsstalle_BA`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `infoadressplatsgis_external` – Procedure `dbo.Zoom_PrepareSwedStreetPart1`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `infoadressplatsgis_external` – Procedure `dbo.Zoom_PrepareSwedStreetPart1`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `infoadressplatsgis_external` – Procedure `dbo.Zoom_PrepareSwedStreetPart1`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `infoadressplatsgis_external` – Procedure `dbo.Zoom_PrepareSwedStreetPart1`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `infoadressplatsgis_external` – Procedure `dbo.Zoom_PrepareSwedStreetPart1`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `infobatch` – Procedure `dbo.FetchQueueInformation`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `infobatch` – Procedure `dbo.FetchQueueInformation`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `infobatch` – Procedure `dbo.FetchQueueInformation`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `infobatch` – Procedure `dbo.FetchQueueInformation`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `infobatch` – Procedure `dbo.FetchQueueInformation`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `rawdata` – Procedure `dbo.KL_Fixa_Skellefteå_TurTestOmrade`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `rawdata` – Procedure `dbo.KL_Fixa_Skellefteå_TurTestOmrade`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `rawdata` – Procedure `dbo.KL_Fixa_Skellefteå_TurTestOmrade`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `rawdata` – Procedure `dbo.KL_Fixa_Skellefteå_TurTestOmrade`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `rawdata` – Procedure `dbo.KL_Fixa_Skellefteå_TurTestOmrade`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `tele` – Procedure `dbo.PoliceParameterSearch`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `tele` – Procedure `dbo.PoliceParameterSearch`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `tele` – Procedure `dbo.PoliceParameterSearch`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `tele` – Procedure `dbo.PoliceParameterSearch`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `tele` – Procedure `dbo.PoliceParameterSearch`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `tele2` – Procedure `dbo.Insert_AppartmentNo_Temp`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `tele2` – Procedure `dbo.Insert_AppartmentNo_Temp`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `tele2` – Procedure `dbo.Insert_AppartmentNo_Temp`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `tele2` – Procedure `dbo.Insert_AppartmentNo_Temp`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `tele2` – Procedure `dbo.Insert_AppartmentNo_Temp`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `teleboniro` – Procedure `dbo.DTS_Update_Boniro_Person`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `teleboniro` – Procedure `dbo.DTS_Update_Boniro_Person`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `teleboniro` – Procedure `dbo.DTS_Update_Boniro_Person`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `teleboniro` – Procedure `dbo.DTS_Update_Boniro_Person`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `teleboniro` – Procedure `dbo.DTS_Update_Boniro_Person`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `teleinfo_external` – Procedure `dbo.SSIS_FOR_AVIS`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `teleinfo_external` – Procedure `dbo.SSIS_FOR_AVIS`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `teleinfo_external` – Procedure `dbo.SSIS_FOR_AVIS`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `teleinfo_external` – Procedure `dbo.SSIS_FOR_AVIS`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
- `teleinfo_external` – Procedure `dbo.SSIS_FOR_AVIS`
  - _Starting with database compatibility level 90 and higher, in rare occasions, the 'unqualified join' syntax can cause 'missing join predicate' warnings, leading to long running queries._
#### 🔧 **CLR assemblies marked as SAFE or EXTERNAL_ACCESS are considered UNSAFE**
- `clr_util` – Assembly `Adress`
  - _CLR Strict Security mode is introduced in SQL Server 2017. This mode is enabled by default and introduces breaking changes for databases containing user-defined CLR assemblies marked either SAFE or EXTERNAL_ACCESS._
- `clr_util` – Assembly `Adress`
  - _CLR Strict Security mode is introduced in SQL Server 2017. This mode is enabled by default and introduces breaking changes for databases containing user-defined CLR assemblies marked either SAFE or EXTERNAL_ACCESS._
- `clr_util` – Assembly `Adress`
  - _CLR Strict Security mode is introduced in SQL Server 2017. This mode is enabled by default and introduces breaking changes for databases containing user-defined CLR assemblies marked either SAFE or EXTERNAL_ACCESS._
- `infobatch` – Assembly `InfodataBatchSQLCLRIntegration`
  - _CLR Strict Security mode is introduced in SQL Server 2017. This mode is enabled by default and introduces breaking changes for databases containing user-defined CLR assemblies marked either SAFE or EXTERNAL_ACCESS._
- `infobatch` – Assembly `InfodataBatchSQLCLRIntegration`
  - _CLR Strict Security mode is introduced in SQL Server 2017. This mode is enabled by default and introduces breaking changes for databases containing user-defined CLR assemblies marked either SAFE or EXTERNAL_ACCESS._
- `infobatch` – Assembly `InfodataBatchSQLCLRIntegration`
  - _CLR Strict Security mode is introduced in SQL Server 2017. This mode is enabled by default and introduces breaking changes for databases containing user-defined CLR assemblies marked either SAFE or EXTERNAL_ACCESS._
#### 🔧 **Deprecated data types TEXT, IMAGE or NTEXT**
- `infoadressplatsgis` – Column `dbo.BricGeometryGIS.SW_GEOMETRY`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infoadressplatsgis` – Column `dbo.BricGeometryGIS.SW_GEOMETRY`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infoadressplatsgis` – Column `dbo.BricGeometryGIS.SW_GEOMETRY`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infoadressplatsgis` – Column `dbo.BricGeometryGIS.SW_GEOMETRY`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infoadressplatsgis` – Column `dbo.BricGeometryGIS.SW_GEOMETRY`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infoadressplatsgis_external` – Column `dbo.SwedStreetGSD.SW_GEOMETRY`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infoadressplatsgis_external` – Column `dbo.SwedStreetGSD.SW_GEOMETRY`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infoadressplatsgis_external` – Column `dbo.SwedStreetGSD.SW_GEOMETRY`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infoadressplatsgis_external` – Column `dbo.SwedStreetGSD.SW_GEOMETRY`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infoadressplatsgis_external` – Column `dbo.SwedStreetGSD.SW_GEOMETRY`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infobatch` – Column `dbo.ErrorAndEventLog.FormattedMessage`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infobatch` – Column `dbo.ErrorAndEventLog.FormattedMessage`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infobatch` – Column `dbo.ErrorAndEventLog.FormattedMessage`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infobatch` – Column `dbo.ErrorAndEventLog.FormattedMessage`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infobatch` – Column `dbo.ErrorAndEventLog.FormattedMessage`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infobest_urval` – Column `dbo.dtproperties.lvalue`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infobest_urval` – Column `dbo.dtproperties.lvalue`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infobest_urval` – Column `dbo.dtproperties.lvalue`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infobest_urval` – Column `dbo.dtproperties.lvalue`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `infobest_urval` – Column `dbo.dtproperties.lvalue`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `teleavis` – Column `dbo.ErrorRowsInDataFile.PersonNo`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `teleavis` – Column `dbo.ErrorRowsInDataFile.PersonNo`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `teleavis` – Column `dbo.ErrorRowsInDataFile.PersonNo`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `teleavis` – Column `dbo.ErrorRowsInDataFile.PersonNo`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
- `teleavis` – Column `dbo.ErrorRowsInDataFile.PersonNo`
  - _These data types are checked as deprecated. In some cases, using TEXT, IMAGE or NTEXT might harm performance._
#### 🔧 **ORDER BY specifies integer ordinal**
- `infobatch` – Procedure `dbo.fetchAllBatchServers`
  - _This rule checks stored procedures, functions, views and triggers for use of ORDER BY clause specifying ordinal column numbers as sort columns. A sort column can be specified as a nonnegative integer representing the position of the name or alias in the select list, but this is not recommended. An integer cannot be specified when the order_by_expression appears in a ranking function. A sort column can include an expression, but when the database is in SQL 90 compatibility mode or higher, the expression cannot resolve to a constant._
- `infobatch` – Procedure `dbo.fetchAllBatchServers`
  - _This rule checks stored procedures, functions, views and triggers for use of ORDER BY clause specifying ordinal column numbers as sort columns. A sort column can be specified as a nonnegative integer representing the position of the name or alias in the select list, but this is not recommended. An integer cannot be specified when the order_by_expression appears in a ranking function. A sort column can include an expression, but when the database is in SQL 90 compatibility mode or higher, the expression cannot resolve to a constant._
- `infobatch` – Procedure `dbo.fetchAllBatchServers`
  - _This rule checks stored procedures, functions, views and triggers for use of ORDER BY clause specifying ordinal column numbers as sort columns. A sort column can be specified as a nonnegative integer representing the position of the name or alias in the select list, but this is not recommended. An integer cannot be specified when the order_by_expression appears in a ranking function. A sort column can include an expression, but when the database is in SQL 90 compatibility mode or higher, the expression cannot resolve to a constant._
- `infobatch` – Procedure `dbo.fetchAllBatchServers`
  - _This rule checks stored procedures, functions, views and triggers for use of ORDER BY clause specifying ordinal column numbers as sort columns. A sort column can be specified as a nonnegative integer representing the position of the name or alias in the select list, but this is not recommended. An integer cannot be specified when the order_by_expression appears in a ranking function. A sort column can include an expression, but when the database is in SQL 90 compatibility mode or higher, the expression cannot resolve to a constant._
- `infobatch` – Procedure `dbo.fetchAllBatchServers`
  - _This rule checks stored procedures, functions, views and triggers for use of ORDER BY clause specifying ordinal column numbers as sort columns. A sort column can be specified as a nonnegative integer representing the position of the name or alias in the select list, but this is not recommended. An integer cannot be specified when the order_by_expression appears in a ranking function. A sort column can include an expression, but when the database is in SQL 90 compatibility mode or higher, the expression cannot resolve to a constant._
#### 🔧 **SET ROWCOUNT used in the context of DML statements such as INSERT, UPDATE, or DELETE**
- `Infobest` – Procedure `dbo.SSIS_CreateOrderForNotifications`
  - _Using SET ROWCOUNT will not affect DELETE, INSERT, and UPDATE statements in SQL Server 2014 and above. Avoid using SET ROWCOUNT with DELETE, INSERT, and UPDATE statements in new development work, and plan to modify applications that currently use it._
- `Infobest` – Procedure `dbo.SSIS_CreateOrderForNotifications`
  - _Using SET ROWCOUNT will not affect DELETE, INSERT, and UPDATE statements in SQL Server 2014 and above. Avoid using SET ROWCOUNT with DELETE, INSERT, and UPDATE statements in new development work, and plan to modify applications that currently use it._
- `Infobest` – Procedure `dbo.SSIS_CreateOrderForNotifications`
  - _Using SET ROWCOUNT will not affect DELETE, INSERT, and UPDATE statements in SQL Server 2014 and above. Avoid using SET ROWCOUNT with DELETE, INSERT, and UPDATE statements in new development work, and plan to modify applications that currently use it._
- `Infobest` – Procedure `dbo.SSIS_CreateOrderForNotifications`
  - _Using SET ROWCOUNT will not affect DELETE, INSERT, and UPDATE statements in SQL Server 2014 and above. Avoid using SET ROWCOUNT with DELETE, INSERT, and UPDATE statements in new development work, and plan to modify applications that currently use it._
- `teleinfo_external` – Procedure `dbo.SSIS_CreateOrderForNotifications2`
  - _Using SET ROWCOUNT will not affect DELETE, INSERT, and UPDATE statements in SQL Server 2014 and above. Avoid using SET ROWCOUNT with DELETE, INSERT, and UPDATE statements in new development work, and plan to modify applications that currently use it._
- `teleinfo_external` – Procedure `dbo.SSIS_CreateOrderForNotifications2`
  - _Using SET ROWCOUNT will not affect DELETE, INSERT, and UPDATE statements in SQL Server 2014 and above. Avoid using SET ROWCOUNT with DELETE, INSERT, and UPDATE statements in new development work, and plan to modify applications that currently use it._
- `teleinfo_external` – Procedure `dbo.SSIS_CreateOrderForNotifications2`
  - _Using SET ROWCOUNT will not affect DELETE, INSERT, and UPDATE statements in SQL Server 2014 and above. Avoid using SET ROWCOUNT with DELETE, INSERT, and UPDATE statements in new development work, and plan to modify applications that currently use it._
- `teleinfo_external` – Procedure `dbo.SSIS_CreateOrderForNotifications2`
  - _Using SET ROWCOUNT will not affect DELETE, INSERT, and UPDATE statements in SQL Server 2014 and above. Avoid using SET ROWCOUNT with DELETE, INSERT, and UPDATE statements in new development work, and plan to modify applications that currently use it._
#### 🔧 **FOR XML AUTO queries return derived table references in 90 or later compatibility modes**
- `teleboniro` – ScalarFunction `dbo.xSys_GetPrimaryKeyColumnsXML`
  - _When the database compatibility level is set to 90 or later, FOR XML queries that execute in AUTO mode return references to derived table aliases. When the compatibility level is set to 80, FOR XML AUTO queries return references to the base tables that define a derived table. For example, the following query, which includes a derived table, produces different results under compatibility levels 80, 90, or later:

 
SELECT * FROM
(SELECT a.id AS a, b.id AS b
FROM Test a JOIN Test b ON a.id=b.id) AS DerivedTest FOR XML AUTO;

 
Under compatibility level 80, the query returns the following results. The results reference the base table aliases a and b of the derived table instead of the derived table alias.

 
<a a="1"><b b="1"/></a><a a="2"><b b="2"/></a>

 
Under compatibility level 90 or later, the query returns references to the derived table alias DerivedTest instead of to the derived table's base tables.

 
<DerivedTest a="1" b="1"/><DerivedTest a="2" b="2"/>_
- `teleboniro` – ScalarFunction `dbo.xSys_GetPrimaryKeyColumnsXML`
  - _When the database compatibility level is set to 90 or later, FOR XML queries that execute in AUTO mode return references to derived table aliases. When the compatibility level is set to 80, FOR XML AUTO queries return references to the base tables that define a derived table. For example, the following query, which includes a derived table, produces different results under compatibility levels 80, 90, or later:

 
SELECT * FROM
(SELECT a.id AS a, b.id AS b
FROM Test a JOIN Test b ON a.id=b.id) AS DerivedTest FOR XML AUTO;

 
Under compatibility level 80, the query returns the following results. The results reference the base table aliases a and b of the derived table instead of the derived table alias.

 
<a a="1"><b b="1"/></a><a a="2"><b b="2"/></a>

 
Under compatibility level 90 or later, the query returns references to the derived table alias DerivedTest instead of to the derived table's base tables.

 
<DerivedTest a="1" b="1"/><DerivedTest a="2" b="2"/>_
- `teleboniro` – ScalarFunction `dbo.xSys_GetPrimaryKeyColumnsXML`
  - _When the database compatibility level is set to 90 or later, FOR XML queries that execute in AUTO mode return references to derived table aliases. When the compatibility level is set to 80, FOR XML AUTO queries return references to the base tables that define a derived table. For example, the following query, which includes a derived table, produces different results under compatibility levels 80, 90, or later:

 
SELECT * FROM
(SELECT a.id AS a, b.id AS b
FROM Test a JOIN Test b ON a.id=b.id) AS DerivedTest FOR XML AUTO;

 
Under compatibility level 80, the query returns the following results. The results reference the base table aliases a and b of the derived table instead of the derived table alias.

 
<a a="1"><b b="1"/></a><a a="2"><b b="2"/></a>

 
Under compatibility level 90 or later, the query returns references to the derived table alias DerivedTest instead of to the derived table's base tables.

 
<DerivedTest a="1" b="1"/><DerivedTest a="2" b="2"/>_
- `teleboniro` – ScalarFunction `dbo.xSys_GetPrimaryKeyColumnsXML`
  - _When the database compatibility level is set to 90 or later, FOR XML queries that execute in AUTO mode return references to derived table aliases. When the compatibility level is set to 80, FOR XML AUTO queries return references to the base tables that define a derived table. For example, the following query, which includes a derived table, produces different results under compatibility levels 80, 90, or later:

 
SELECT * FROM
(SELECT a.id AS a, b.id AS b
FROM Test a JOIN Test b ON a.id=b.id) AS DerivedTest FOR XML AUTO;

 
Under compatibility level 80, the query returns the following results. The results reference the base table aliases a and b of the derived table instead of the derived table alias.

 
<a a="1"><b b="1"/></a><a a="2"><b b="2"/></a>

 
Under compatibility level 90 or later, the query returns references to the derived table alias DerivedTest instead of to the derived table's base tables.

 
<DerivedTest a="1" b="1"/><DerivedTest a="2" b="2"/>_
- `teleboniro` – ScalarFunction `dbo.xSys_GetPrimaryKeyColumnsXML`
  - _When the database compatibility level is set to 90 or later, FOR XML queries that execute in AUTO mode return references to derived table aliases. When the compatibility level is set to 80, FOR XML AUTO queries return references to the base tables that define a derived table. For example, the following query, which includes a derived table, produces different results under compatibility levels 80, 90, or later:

 
SELECT * FROM
(SELECT a.id AS a, b.id AS b
FROM Test a JOIN Test b ON a.id=b.id) AS DerivedTest FOR XML AUTO;

 
Under compatibility level 80, the query returns the following results. The results reference the base table aliases a and b of the derived table instead of the derived table alias.

 
<a a="1"><b b="1"/></a><a a="2"><b b="2"/></a>

 
Under compatibility level 90 or later, the query returns references to the derived table alias DerivedTest instead of to the derived table's base tables.

 
<DerivedTest a="1" b="1"/><DerivedTest a="2" b="2"/>_
#### 🔧 **Syntax issue on the source server**
- `teleinfo_external` – Procedure `dbo.GetTeleInfoNotificationStatistics`
  - _While parsing the schema on the source database, one or more syntax issues were found. Syntax issues on the source database indicate that some objects contain unsupported syntax due to which all assessment rules were not run on the object._
- `teleinfo_external` – Procedure `dbo.GetTeleInfoNotificationStatistics`
  - _While parsing the schema on the source database, one or more syntax issues were found. Syntax issues on the source database indicate that some objects contain unsupported syntax due to which all assessment rules were not run on the object._
- `teleinfo_external` – Procedure `dbo.GetTeleInfoNotificationStatistics`
  - _While parsing the schema on the source database, one or more syntax issues were found. Syntax issues on the source database indicate that some objects contain unsupported syntax due to which all assessment rules were not run on the object._
- `teleinfo_external` – Procedure `dbo.GetTeleInfoNotificationStatistics`
  - _While parsing the schema on the source database, one or more syntax issues were found. Syntax issues on the source database indicate that some objects contain unsupported syntax due to which all assessment rules were not run on the object._
- `teleinfo_external` – Procedure `dbo.GetTeleInfoNotificationStatistics`
  - _While parsing the schema on the source database, one or more syntax issues were found. Syntax issues on the source database indicate that some objects contain unsupported syntax due to which all assessment rules were not run on the object._

---

## ✅ **Rekomendacje przed migracją**
1. **Zaktualizuj typy danych**: Zamień `TEXT`, `NTEXT`, `IMAGE` na nowoczesne typy.
2. **Popraw składnię JOIN-ów**: Zmień na `INNER JOIN`, `LEFT JOIN` itd.
3. **Usuń `SET ROWCOUNT` z DML**: Zastąp `TOP`.
4. **Zaktualizuj procedury z `FOR XML AUTO`**: Upewnij się, że aplikacje obsługują nowe aliasy.
5. **Zabezpiecz CLR assemblies**: Podpisz je lub skonfiguruj `Trustworthy`/`UNSAFE ASSEMBLY` (ostrożnie).
6. **Usuń odniesienia do `spt_values` i innych nieudokumentowanych tabel**.
