| title | Backward Compatibility in SMO | Microsoft Docs |
|---|---|
| ms.custom | |
| ms.date | 03/14/2017 |
| ms.prod | sql |
| ms.prod_service | database-engine |
| ms.reviewer | |
| ms.technology | |
| ms.topic | reference |
| ms.assetid | 2f986436-aaf2-4eaf-9809-df849d97d4fb |
| author | markingmyname |
| ms.author | maghan |
| monikerRange | =azuresqldb-current||=azure-sqldw-latest||>=sql-server-2016||=sqlallproducts-allversions||>=sql-server-linux-2017||=azuresqldb-mi-current |
[!INCLUDEappliesto-ss-asdb-asdw-xxx-md]
SMO applications that were written using previous versions of [!INCLUDEssNoVersion] can be recompiled by using SMO in [!INCLUDEssCurrent].
References to SMO dlls in older versions of [!INCLUDEssNoVersion] must be removed, and references to the new SMO dlls that are provided with [!INCLUDEssCurrent] must be included.
Minimally, you would reference the following:
-
Microsoft.SqlServer.ConnectionInfo
-
Microsoft.SqlServer.Smo
-
Microsoft.SqlServer.Management.Sdk.Sfc
These files are required for connection classes, SMO utility classes, and foundation classes.
Note
SmoEnum.dll has been removed so references to it must be removed from the SMO [!INCLUDEssCurrent] project.
The namespaces have also changed, so you can use the following:
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common
If your code uses Urn functionality, such as Server.GetSqlSmoObject(Urn), you must link to the Microsoft.SqlServer.Management.Sdk.Sfc namespace.
If your code uses the Transfer object directly, you will have to link to the Microsoft.SqlServer.Management.SmoExtended namespace.
When you migrate code, you might have to modify the code. This is because several [!INCLUDEssVersion2005] and [!INCLUDEssKatmai] features have been deprecated in [!INCLUDEssCurrent]. For more information about deprecated features, see Deprecated Database Engine Features in SQL Server 2016 in [!INCLUDEssCurrent] Books Online.