microsoft / microsoft/sqlmanagementobjects

Replace some SMO enumerations with string constants

Ouverte
#102 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
C#
Étoiles
143
Forks
28
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

One source of continuous maintenance in SMO is adding new enumeration values as Azure SQL Database and SQL Server evolve over time.
Unless we update the enumerations SMO is unable to generate scripts for objects that use the new values. For the most part, there's very little value in having an enumeration for these identifiers instead of string constants. SMO should be able to store any value returned from the server and use it in script generation without converting it from string to enum value. We can continue to facilitate C# programming by replacing the enumerations with static classes of string constants that have C#-style names for the values SMO knows about.

Here's an incomplete list of candidate enumerations to replace with strings in the next major version bump:

ExternalDataSourceType
ExternalFileFormatType
ExternalStreamingJobStatusType
ExternalTableRejectType
DwTableDistributionType
DwViewDistributionType
ExternalLanguageFilePlatform
AuditDestinationType
OnFailureAction
SensitivityRank
AuditActionType
DatabaseScopedConfigurationOnOff
TemporalHistoryRetentionPeriodUnit
DataRetentionPeriodUnit
CatalogCollationType
AgentSubSystem
JobExecutionStatus

Another enum that needs some re-design to allow SSMS to support new permission values without a SMO update is DatabasePermissionSetValue

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par localiser les déclarations et les utilisations des énumérations candidates répertoriées dans l’issue, notamment ExternalDataSourceType, AuditActionType et DatabasePermissionSetValue. Déterminez la refonte nécessaire et son impact sur la prise en charge de SMO et de SSMS avant de proposer le périmètre ; le travail serait considéré comme terminé lorsque les valeurs sélectionnées pourront accepter de nouveaux identifiants renvoyés par le serveur sans mise à jour de SMO.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
azure, csharp, sql
Domaine
database
Type d'issue
Refactorisation
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.