Sql Management Objects, an API for scripting and managing SQL Server and Azure SQL Database
Перейти к файлу
David Shiflet 2a818b9321
Merge pull request #172 from ericstj/fixEnumConverters
Fix: Make sure to pass enum type to EnumConverter
2024-09-24 13:31:49 -05:00
.github/workflows use upload v4 2024-09-05 10:29:44 -05:00
Nuget
SmoBuild
docs
examples/GetSmoObject
packages
src Make sure to pass enum type to EnumConverter 2024-09-24 09:46:19 -07:00
.editorconfig
.gitattributes
.gitignore
.gitmodules
CHANGELOG.md
CODE_OF_CONDUCT.md
Directory.Build.props
Directory.Build.rsp
LICENSE
Packages.props
README.md
SECURITY.md
azurepipelines-coverage.yml
dirs.proj
global.json
init.cmd

README.md

SQL Management Objects

SQL Management Objects, or SMO, provides objects and APIs to discover, modify, and script out SQL Server entities.

Documentation

See https://docs.microsoft.com/sql/relational-databases/server-management-objects-smo/overview-smo

Usage

SMO packages on nuget.org include:

Microsoft.SqlServer.SqlManagementObjects

This package is the primary development SDK for SMO. It provides both NetFx and NetStandard binaries. Capabilities of the NetStandard binaries may be limited by that platform, such as the lack of WMI support. Version suffixes for this package include "preview" and "msdata". The preview suffix indicates the package was built using System.Data and System.Data.SqlClient as its SQL client driver for NetFx. The msdata suffix indicate the package uses Microsoft.Data.SqlClient as its SQL client driver for NetFx. The binaries are strong named and Authenticode signed.

Microsoft.SqlServer.SqlManagementObjects.Loc

This package has resource DLLs with localized strings corresponding to the DLLs in Microsoft.SqlServer.SqlManagementObjects.

Microsoft.SqlServer.SqlManagementObjects.SSMS

This package has NetFx binaries that continue to use System.Data.SqlClient as their SQL client driver. It is mainly intended for use by Sql Server Management Studio and Sql Server Data Tools until such time as those tools can upgrade to Microsoft.Data.SqlClient. If you are building SSMS 18 extensions that depend on SMO, use this package instead of Microsoft.SqlServer.SqlManagementObjects.

Microsoft.SqlServer.Management.SmoMetadataProvider

SmoMetadataProvider provides completion support for TSQL language services in Azure Data Studio and the Sql Server extension for VS Code.

Microsoft.SqlServer.Management.SmoMetadataProvider.SSMS

SmoMetadataProvider.SSMS provides completion support for the TSQL language service in Sql Server Management Studio.

Versioning

The major version for each SMO release corresponds with the highest Sql Server compatibility level that version of SMO supports. For example, 140 means it supports SQL Server 2017 and below. Some features of SMO may require having a matching SQL Server version in order to work effectively, but most features are fully backward compatible.

Dependents

SMO is a integral part of the SQL Server ecosystem. A broad set of client tools, engine components, and service components rely on it extensively. The set of SMO dependents includes:

  • Azure Data Studio/Sql Tools Service
  • Sql Server Management Studio
  • Sql Server Integration Services (SSIS)
  • Sql Powershell module
  • Sql Data Sync service
  • Polybase
  • Azure Sql Database
  • Microsoft Dynamics
  • Sql Server SCOM Management Pack

Contributing

Types of contributions

  • Please open issues related to bugs or other deficiencies in SMO on the Issues feed of this repo
  • Include SMO version where the issue was found
  • Include as much of the source code to reproduce the issue as possible
  • Ask for sample code for areas where you find the docs lacking
  • If you are a SMO application developer, we welcome contributions to the wiki or even source code samples to illustrate effective ways to use SMO in applications.

Stuff our attorney added

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.