microsoft / microsoft/sqlmanagementobjects

Replace some SMO enumerations with string constants

Offen
#102 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C#
Sterne
143
Forks
28
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die Deklarationen und Verwendungen der im Issue aufgeführten Kandidaten-Enumerationen zu finden, einschließlich ExternalDataSourceType, AuditActionType und DatabasePermissionSetValue. Ermittle das erforderliche Redesign und dessen Auswirkungen auf die Unterstützung von SMO und SSMS, bevor du den Umfang vorschlägst; abgeschlossen wäre die Aufgabe, wenn die ausgewählten Werte neue vom Server zurückgegebene Bezeichner ohne ein SMO-Update akzeptieren können.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
azure, csharp, sql
Bereich
database
Issue-Typ
Refactoring
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.