diff --git a/Packages.props b/Packages.props index 5d53c940..6543b74b 100644 --- a/Packages.props +++ b/Packages.props @@ -23,7 +23,7 @@ - + diff --git a/bin/nuget/Microsoft.SqlServer.Migration.Assessment.1.0.20210319.291.nupkg b/bin/nuget/Microsoft.SqlServer.Migration.Assessment.1.0.20210319.291.nupkg new file mode 100644 index 00000000..6e2e48fb Binary files /dev/null and b/bin/nuget/Microsoft.SqlServer.Migration.Assessment.1.0.20210319.291.nupkg differ diff --git a/bin/nuget/microsoft.sqlserver.migration.assessment.1.0.20201001.204.nupkg b/bin/nuget/microsoft.sqlserver.migration.assessment.1.0.20201001.204.nupkg deleted file mode 100644 index 4e20dec6..00000000 Binary files a/bin/nuget/microsoft.sqlserver.migration.assessment.1.0.20201001.204.nupkg and /dev/null differ diff --git a/src/Microsoft.SqlTools.ServiceLayer/Migration/Metadata/TargetAssessment/AzureSQLDatabase/AzureSQLDbFeatureRuleMetadataStore.xml b/src/Microsoft.SqlTools.ServiceLayer/Migration/Metadata/TargetAssessment/AzureSQLDatabase/AzureSQLDbFeatureRuleMetadataStore.xml index 7699e4d8..b804548d 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Migration/Metadata/TargetAssessment/AzureSQLDatabase/AzureSQLDbFeatureRuleMetadataStore.xml +++ b/src/Microsoft.SqlTools.ServiceLayer/Migration/Metadata/TargetAssessment/AzureSQLDatabase/AzureSQLDbFeatureRuleMetadataStore.xml @@ -1,37 +1,40 @@  - - - DataCollection - - DataCollection - DataCollectionTitle - DataCollectionImpact - DataCollectionRecommendation - DataCollectionMoreInformation - DataCollectionMoreInformationHyperlink - - + ServerScopedTriggers ServerScopedTriggers ServerScopedTriggersTitle - ServerScopedTriggersImpact + ServerScopedTriggersIssueCategory + ServerScopedTriggersDescription ServerScopedTriggersRecommendation ServerScopedTriggersMoreInformation - ServerScopedTriggersMoreInformationHyperlink + ServerScopedTriggersMoreInformationlink - CDC + ComputeClause - CDC - CDCTitle - CDCImpact - CDCRecommendation - CDCMoreInformation - CDCMoreInformationHyperlink + ComputeClause + ComputeClauseTitle + ComputeClauseIssueCategory + ComputeClauseDescription + ComputeClauseRecommendation + ComputeClauseMoreInformation + ComputeClauseMoreInformationlink + + + + OpenRowsetWithNonBlobDataSourceBulk + + OpenRowsetWithNonBlobDataSourceBulk + OpenRowsetWithNonBlobDataSourceBulkTitle + OpenRowsetWithNonBlobDataSourceBulkIssueCategory + OpenRowsetWithNonBlobDataSourceBulkDescription + OpenRowsetWithNonBlobDataSourceBulkRecommendation + OpenRowsetWithNonBlobDataSourceBulkMoreInformation + OpenRowsetWithNonBlobDataSourceBulkMoreInformationlink @@ -39,164 +42,35 @@ FileStream FileStreamTitle - FileStreamImpact + FileStreamIssueCategory + FileStreamDescription FileStreamRecommendation FileStreamMoreInformation - FileStreamMoreInformationHyperlink + FileStreamMoreInformationlink - AlwaysOnAvailabilityGroups + NonANSIRightOuterJoinSyntax - AlwaysOnAvailabilityGroups - AlwaysOnAvailabilityGroupsTitle - AlwaysOnAvailabilityGroupsImpact - AlwaysOnAvailabilityGroupsRecommendation - AlwaysOnAvailabilityGroupsMoreInformation - AlwaysOnAvailabilityGroupsMoreInformationHyperlink + NonANSIRightOuterJoinSyntax + NonANSIRightOuterJoinSyntaxTitle + NonANSIRightOuterJoinSyntaxIssueCategory + NonANSIRightOuterJoinSyntaxDescription + NonANSIRightOuterJoinSyntaxRecommendation + NonANSIRightOuterJoinSyntaxMoreInformation + NonANSIRightOuterJoinSyntaxMoreInformationlink - MaintenancePlans + SystemProcedures110 - MaintenancePlans - MaintenancePlansTitle - MaintenancePlansImpact - MaintenancePlansRecommendation - MaintenancePlansMoreInformation - MaintenancePlansMoreInformationHyperlink - - - - BackupRestoreCommand - - BackupRestoreCommand - BackupRestoreCommandTitle - BackupRestoreCommandImpact - BackupRestoreCommandRecommendation - BackupRestoreCommandMoreInformation - BackupRestoreCommandMoreInformationHyperlink - - - - TransactionalReplication - - TransactionalReplication - TransactionalReplicationTitle - TransactionalReplicationImpact - TransactionalReplicationRecommendation - TransactionalReplicationMoreInformation - TransactionalReplicationMoreInformationHyperlink - - - - TablePartitioning - - TablePartitioning - TablePartitioningTitle - TablePartitioningImpact - TablePartitioningRecommendation - TablePartitioningMoreInformation - TablePartitioningMoreInformationHyperlink - - - - TraceFlags - - TraceFlags - TraceFlagsTitle - TraceFlagsImpact - TraceFlagsRecommendation - TraceFlagsMoreInformation - TraceFlagsMoreInformationHyperlink - - - - LogShipping - - LogShipping - LogShippingTitle - LogShippingImpact - LogShippingRecommendation - LogShippingMoreInformation - LogShippingMoreInformationHyperlink - - - - ClrAssemblies - - ClrAssemblies - ClrAssembliesTitle - ClrAssembliesImpact - ClrAssembliesRecommendation - ClrAssembliesMoreInformation - ClrAssembliesMoreInformationHyperlink - - - - AgentJobs - - AgentJobs - AgentJobsTitle - AgentJobsImpact - AgentJobsRecommendation - AgentJobsMoreInformation - AgentJobsMoreInformationHyperlink - - - - LinkedServer - - LinkedServer - LinkedServerTitle - LinkedServerImpact - LinkedServerRecommendation - LinkedServerMoreInformation - LinkedServerMoreInformationHyperlink - - - - SSAS - - SSAS - SSASTitle - SSASImpact - SSASRecommendation - SSASMoreInformation - SSASMoreInformationHyperlink - - - - ServiceBroker - - ServiceBroker - ServiceBrokerTitle - ServiceBrokerImpact - ServiceBrokerRecommendation - ServiceBrokerMoreInformation - ServiceBrokerMoreInformationHyperlink - - - - ServerCredentials - - ServerCredentials - ServerCredentialsTitle - ServerCredentialsImpact - ServerCredentialsRecommendation - ServerCredentialsMoreInformation - ServerCredentialsMoreInformationHyperlink - - - - FailoverClustering - - FailoverClustering - FailoverClusteringTitle - FailoverClusteringImpact - FailoverClusteringRecommendation - FailoverClusteringMoreInformation - FailoverClusteringMoreInformationHyperlink + SystemProcedures110 + SystemProcedures110Title + SystemProcedures110IssueCategory + SystemProcedures110Description + SystemProcedures110Recommendation + SystemProcedures110MoreInformation + SystemProcedures110MoreInformationlink @@ -204,10 +78,227 @@ WindowsAuthentication WindowsAuthenticationTitle - WindowsAuthenticationImpact + WindowsAuthenticationIssueCategory + WindowsAuthenticationDescription WindowsAuthenticationRecommendation WindowsAuthenticationMoreInformation - WindowsAuthenticationMoreInformationHyperlink + WindowsAuthenticationMoreInformationlink + + + + BulkInsert + + BulkInsert + BulkInsertTitle + BulkInsertIssueCategory + BulkInsertDescription + BulkInsertRecommendation + BulkInsertMoreInformation + BulkInsertMoreInformationlink + + + + TraceFlags + + TraceFlags + TraceFlagsTitle + TraceFlagsIssueCategory + TraceFlagsDescription + TraceFlagsRecommendation + TraceFlagsMoreInformation + TraceFlagsMoreInformationlink + + + + ClrAssemblies + + ClrAssemblies + ClrAssembliesTitle + ClrAssembliesIssueCategory + ClrAssembliesDescription + ClrAssembliesRecommendation + ClrAssembliesMoreInformation + ClrAssembliesMoreInformationlink + + + + AgentJobs + + AgentJobs + AgentJobsTitle + AgentJobsIssueCategory + AgentJobsDescription + AgentJobsRecommendation + AgentJobsMoreInformation + AgentJobsMoreInformationlink + + + + LinkedServer + + LinkedServer + LinkedServerTitle + LinkedServerIssueCategory + LinkedServerDescription + LinkedServerRecommendation + LinkedServerMoreInformation + LinkedServerMoreInformationlink + + + + XpCmdshell + + XpCmdshell + XpCmdshellTitle + XpCmdshellIssueCategory + XpCmdshellDescription + XpCmdshellRecommendation + XpCmdshellMoreInformation + XpCmdshellMoreInformationlink + + + + CDC + + CDC + CDCTitle + CDCIssueCategory + CDCDescription + CDCRecommendation + CDCMoreInformation + CDCMoreInformationlink + + + + MSDTCTransactSQL + + MSDTCTransactSQL + MSDTCTransactSQLTitle + MSDTCTransactSQLIssueCategory + MSDTCTransactSQLDescription + MSDTCTransactSQLRecommendation + MSDTCTransactSQLMoreInformation + MSDTCTransactSQLMoreInformationlink + + + + ServerCredentials + + ServerCredentials + ServerCredentialsTitle + ServerCredentialsIssueCategory + ServerCredentialsDescription + ServerCredentialsRecommendation + ServerCredentialsMoreInformation + ServerCredentialsMoreInformationlink + + + + NonANSILeftOuterJoinSyntax + + NonANSILeftOuterJoinSyntax + NonANSILeftOuterJoinSyntaxTitle + NonANSILeftOuterJoinSyntaxIssueCategory + NonANSILeftOuterJoinSyntaxDescription + NonANSILeftOuterJoinSyntaxRecommendation + NonANSILeftOuterJoinSyntaxMoreInformation + NonANSILeftOuterJoinSyntaxMoreInformationlink + + + + SyntaxError + + SyntaxError + SyntaxErrorTitle + SyntaxErrorIssueCategory + SyntaxErrorDescription + SyntaxErrorRecommendation + SyntaxErrorMoreInformation + SyntaxErrorMoreInformationlink + + + + FastFirstRowHint + + FastFirstRowHint + FastFirstRowHintTitle + FastFirstRowHintIssueCategory + FastFirstRowHintDescription + FastFirstRowHintRecommendation + FastFirstRowHintMoreInformation + FastFirstRowHintMoreInformationlink + + + + CryptographicProvider + + CryptographicProvider + CryptographicProviderTitle + CryptographicProviderIssueCategory + CryptographicProviderDescription + CryptographicProviderRecommendation + CryptographicProviderMoreInformation + CryptographicProviderMoreInformationlink + + + + SqlMail + + SqlMail + SqlMailTitle + SqlMailIssueCategory + SqlMailDescription + SqlMailRecommendation + SqlMailMoreInformation + SqlMailMoreInformationlink + + + + SQLDBDatabaseSize + + SQLDBDatabaseSize + SQLDBDatabaseSizeTitle + SQLDBDatabaseSizeIssueCategory + SQLDBDatabaseSizeDescription + SQLDBDatabaseSizeRecommendation + SQLDBDatabaseSizeMoreInformation + SQLDBDatabaseSizeMoreInformationlink + + + + DatabasePrincipalAlias + + DatabasePrincipalAlias + DatabasePrincipalAliasTitle + DatabasePrincipalAliasIssueCategory + DatabasePrincipalAliasDescription + DatabasePrincipalAliasRecommendation + DatabasePrincipalAliasMoreInformation + DatabasePrincipalAliasMoreInformationlink + + + + ServiceBroker + + ServiceBroker + ServiceBrokerTitle + ServiceBrokerIssueCategory + ServiceBrokerDescription + ServiceBrokerRecommendation + ServiceBrokerMoreInformation + ServiceBrokerMoreInformationlink + + + + DbCompatLevelLowerThan100 + + DbCompatLevelLowerThan100 + DbCompatLevelLowerThan100Title + DbCompatLevelLowerThan100IssueCategory + DbCompatLevelLowerThan100Description + DbCompatLevelLowerThan100Recommendation + DbCompatLevelLowerThan100MoreInformation + DbCompatLevelLowerThan100MoreInformationlink @@ -215,98 +306,23 @@ DatabaseMail DatabaseMailTitle - DatabaseMailImpact + DatabaseMailIssueCategory + DatabaseMailDescription DatabaseMailRecommendation DatabaseMailMoreInformation - DatabaseMailMoreInformationHyperlink + DatabaseMailMoreInformationlink - PolicyBasedManagement + NextColumn - PolicyBasedManagement - PolicyBasedManagementTitle - PolicyBasedManagementImpact - PolicyBasedManagementRecommendation - PolicyBasedManagementMoreInformation - PolicyBasedManagementMoreInformationHyperlink - - - - CrossDataseReferences - - CrossDataseReferences - CrossDataseReferencesTitle - CrossDataseReferencesImpact - CrossDataseReferencesRecommendation - CrossDataseReferencesMoreInformation - CrossDataseReferencesMoreInformationHyperlink - - - - DatabaseMirroring - - DatabaseMirroring - DatabaseMirroringTitle - DatabaseMirroringImpact - DatabaseMirroringRecommendation - DatabaseMirroringMoreInformation - DatabaseMirroringMoreInformationHyperlink - - - - SSRS - - SSRS - SSRSTitle - SSRSImpact - SSRSRecommendation - SSRSMoreInformation - SSRSMoreInformationHyperlink - - - - DbChaining - - DbChaining - DbChainingTitle - DbChainingImpact - DbChainingRecommendation - DbChainingMoreInformation - DbChainingMoreInformationHyperlink - - - - FullTextSearch - - FullTextSearch - FullTextSearchTitle - FullTextSearchImpact - FullTextSearchRecommendation - FullTextSearchMoreInformation - FullTextSearchMoreInformationHyperlink - - - - FileGroups - - FileGroups - FileGroupsTitle - FileGroupsImpact - FileGroupsRecommendation - FileGroupsMoreInformation - FileGroupsMoreInformationHyperlink - - - - UserDefinedErrorMessages - - UserDefinedErrorMessages - UserDefinedErrorMessagesTitle - UserDefinedErrorMessagesImpact - UserDefinedErrorMessagesRecommendation - UserDefinedErrorMessagesMoreInformation - UserDefinedErrorMessagesMoreInformationHyperlink + NextColumn + NextColumnTitle + NextColumnIssueCategory + NextColumnDescription + NextColumnRecommendation + NextColumnMoreInformation + NextColumnMoreInformationlink @@ -314,55 +330,60 @@ ServerAudits ServerAuditsTitle - ServerAuditsImpact + ServerAuditsIssueCategory + ServerAuditsDescription ServerAuditsRecommendation ServerAuditsMoreInformation - ServerAuditsMoreInformationHyperlink + ServerAuditsMoreInformationlink - FixedCatalogCollation + DisableDefCNSTCHK - FixedCatalogCollation - FixedCatalogCollationTitle - FixedCatalogCollationImpact - FixedCatalogCollationRecommendation - FixedCatalogCollationMoreInformation - FixedCatalogCollationMoreInformationHyperlink + DisableDefCNSTCHK + DisableDefCNSTCHKTitle + DisableDefCNSTCHKIssueCategory + DisableDefCNSTCHKDescription + DisableDefCNSTCHKRecommendation + DisableDefCNSTCHKMoreInformation + DisableDefCNSTCHKMoreInformationlink - SSIS + CrossDatabaseReferences - SSIS - SSISTitle - SSISImpact - SSISRecommendation - SSISMoreInformation - SSISMoreInformationHyperlink + CrossDatabaseReferences + CrossDatabaseReferencesTitle + CrossDatabaseReferencesIssueCategory + CrossDatabaseReferencesDescription + CrossDatabaseReferencesRecommendation + CrossDatabaseReferencesMoreInformation + CrossDatabaseReferencesMoreInformationlink - TrustWorthy + RAISERROR - TrustWorthy - TrustWorthyTitle - TrustWorthyImpact - TrustWorthyRecommendation - TrustWorthyMoreInformation - TrustWorthyMoreInformationHyperlink + RAISERROR + RAISERRORTitle + RAISERRORIssueCategory + RAISERRORDescription + RAISERRORRecommendation + RAISERRORMoreInformation + RAISERRORMoreInformationlink - UnsupportedObjectTypes + OpenRowsetWithSQLAndNonSQLProvider - UnsupportedObjectTypes - UnsupportedObjectTypesTitle - UnsupportedObjectTypesImpact - UnsupportedObjectTypesRecommendation - UnsupportedObjectTypesMoreInformation - UnsupportedObjectTypesMoreInformationHyperlink + OpenRowsetWithSQLAndNonSQLProvider + OpenRowsetWithSQLAndNonSQLProviderTitle + OpenRowsetWithSQLAndNonSQLProviderIssueCategory + OpenRowsetWithSQLAndNonSQLProviderDescription + OpenRowsetWithSQLAndNonSQLProviderRecommendation + OpenRowsetWithSQLAndNonSQLProviderMoreInformation + OpenRowsetWithSQLAndNonSQLProviderMoreInformationlink -C+eCZSRT7WPFUAp3mGHpcVfGLPA=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 \ No newline at end of file + \ No newline at end of file diff --git a/src/Microsoft.SqlTools.ServiceLayer/Migration/Metadata/TargetAssessment/ManagedInstance/MIFeatureRuleMetadataStore.xml b/src/Microsoft.SqlTools.ServiceLayer/Migration/Metadata/TargetAssessment/ManagedInstance/MIFeatureRuleMetadataStore.xml index 071e863f..87f6b59d 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/Migration/Metadata/TargetAssessment/ManagedInstance/MIFeatureRuleMetadataStore.xml +++ b/src/Microsoft.SqlTools.ServiceLayer/Migration/Metadata/TargetAssessment/ManagedInstance/MIFeatureRuleMetadataStore.xml @@ -1,111 +1,29 @@  - + - CreateDatabaseForAttachOptionEnabled + LinkedServerWithNonSQLProvider - CreateDatabaseForAttachOptionEnabled - CreateDatabaseForAttachOptionEnabledTitle - CreateDatabaseForAttachOptionEnabledImpact - CreateDatabaseForAttachOptionEnabledRecommendation - CreateDatabaseForAttachOptionEnabledMoreInformation - CreateDatabaseForAttachOptionEnabledMoreInformationHyperlink + LinkedServerWithNonSQLProvider + LinkedServerWithNonSQLProviderTitle + LinkedServerWithNonSQLProviderIssueCategory + LinkedServerWithNonSQLProviderDescription + LinkedServerWithNonSQLProviderRecommendation + LinkedServerWithNonSQLProviderMoreInformation + LinkedServerWithNonSQLProviderMoreInformationlink false - SpAddExtendedProc + NonANSIRightOuterJoinSyntax - SpAddExtendedProc - SpAddExtendedProcTitle - SpAddExtendedProcImpact - SpAddExtendedProcRecommendation - SpAddExtendedProcMoreInformation - SpAddExtendedProcMoreInformationHyperlink - false - - - - MsDmaAnalysisCommandJob - - MsDmaAnalysisCommandJob - MsDmaAnalysisCommandJobTitle - MsDmaAnalysisCommandJobImpact - MsDmaAnalysisCommandJobRecommendation - MsDmaAnalysisCommandJobMoreInformation - MsDmaAnalysisCommandJobMoreInformationHyperlink - false - - - - MsDmaPowerShellJob - - MsDmaPowerShellJob - MsDmaPowerShellJobTitle - MsDmaPowerShellJobImpact - MsDmaPowerShellJobRecommendation - MsDmaPowerShellJobMoreInformation - MsDmaPowerShellJobMoreInformationHyperlink - false - - - - FileStream - - FileStream - FileStreamTitle - FileStreamImpact - FileStreamRecommendation - FileStreamMoreInformation - FileStreamMoreInformationHyperlink - true - - - - MultipleLogFiles - - MultipleLogFiles - MultipleLogFilesTitle - MultipleLogFilesImpact - MultipleLogFilesRecommendation - MultipleLogFilesMoreInformation - MultipleLogFilesMoreInformationHyperlink - true - - - - DatabaseSize - - DatabaseSize - DatabaseSizeTitle - DatabaseSizeImpact - DatabaseSizeRecommendation - DatabaseSizeMoreInformation - DatabaseSizeMoreInformationHyperlink - true - - - - XpCmdshell - - XpCmdshell - XpCmdshellTitle - XpCmdshellImpact - XpCmdshellRecommendation - XpCmdshellMoreInformation - XpCmdshellMoreInformationHyperlink - false - - - - ServiceBrokerWithNonLocalAddress - - ServiceBrokerWithNonLocalAddress - ServiceBrokerWithNonLocalAddressTitle - ServiceBrokerWithNonLocalAddressImpact - ServiceBrokerWithNonLocalAddressRecommendation - ServiceBrokerWithNonLocalAddressMoreInformation - ServiceBrokerWithNonLocalAddressMoreInformationHyperlink + NonANSIRightOuterJoinSyntax + NonANSIRightOuterJoinSyntaxTitle + NonANSIRightOuterJoinSyntaxIssueCategory + NonANSIRightOuterJoinSyntaxDescription + NonANSIRightOuterJoinSyntaxRecommendation + NonANSIRightOuterJoinSyntaxMoreInformation + NonANSIRightOuterJoinSyntaxMoreInformationlink false @@ -114,142 +32,323 @@ OpenRowsetWithNonBlobDataSourceBulk OpenRowsetWithNonBlobDataSourceBulkTitle - OpenRowsetWithNonBlobDataSourceBulkImpact + OpenRowsetWithNonBlobDataSourceBulkIssueCategory + OpenRowsetWithNonBlobDataSourceBulkDescription OpenRowsetWithNonBlobDataSourceBulkRecommendation OpenRowsetWithNonBlobDataSourceBulkMoreInformation - OpenRowsetWithNonBlobDataSourceBulkMoreInformationHyperlink + OpenRowsetWithNonBlobDataSourceBulkMoreInformationlink false - MsDmaQueueReaderJob + FileStream - MsDmaQueueReaderJob - MsDmaQueueReaderJobTitle - MsDmaQueueReaderJobImpact - MsDmaQueueReaderJobRecommendation - MsDmaQueueReaderJobMoreInformation - MsDmaQueueReaderJobMoreInformationHyperlink + FileStream + FileStreamTitle + FileStreamIssueCategory + FileStreamDescription + FileStreamRecommendation + FileStreamMoreInformation + FileStreamMoreInformationlink + true + + + + TraceFlags + + TraceFlags + TraceFlagsTitle + TraceFlagsIssueCategory + TraceFlagsDescription + TraceFlagsRecommendation + TraceFlagsMoreInformation + TraceFlagsMoreInformationlink false - UserDefinedExtendedStoredProcedure + NextColumn - UserDefinedExtendedStoredProcedure - UserDefinedExtendedStoredProcedureTitle - UserDefinedExtendedStoredProcedureImpact - UserDefinedExtendedStoredProcedureRecommendation - UserDefinedExtendedStoredProcedureMoreInformation - UserDefinedExtendedStoredProcedureMoreInformationHyperlink + NextColumn + NextColumnTitle + NextColumnIssueCategory + NextColumnDescription + NextColumnRecommendation + NextColumnMoreInformation + NextColumnMoreInformationlink false - SpAttachDb + AnalysisQueryJob - SpAttachDb - SpAttachDbTitle - SpAttachDbImpact - SpAttachDbRecommendation - SpAttachDbMoreInformation - SpAttachDbMoreInformationHyperlink + AnalysisQueryJob + AnalysisQueryJobTitle + AnalysisQueryJobIssueCategory + AnalysisQueryJobDescription + AnalysisQueryJobRecommendation + AnalysisQueryJobMoreInformation + AnalysisQueryJobMoreInformationlink false - MsDmaTransactSqlJob + QueueReaderJob - MsDmaTransactSqlJob - MsDmaTransactSqlJobTitle - MsDmaTransactSqlJobImpact - MsDmaTransactSqlJobRecommendation - MsDmaTransactSqlJobMoreInformation - MsDmaTransactSqlJobMoreInformationHyperlink + QueueReaderJob + QueueReaderJobTitle + QueueReaderJobIssueCategory + QueueReaderJobDescription + QueueReaderJobRecommendation + QueueReaderJobMoreInformation + QueueReaderJobMoreInformationlink false - LinkedServerWithNonSQLProvider + AnalysisCommandJob - LinkedServerWithNonSQLProvider - LinkedServerWithNonSQLProviderTitle - LinkedServerWithNonSQLProviderImpact - LinkedServerWithNonSQLProviderRecommendation - LinkedServerWithNonSQLProviderMoreInformation - LinkedServerWithNonSQLProviderMoreInformationHyperlink + AnalysisCommandJob + AnalysisCommandJobTitle + AnalysisCommandJobIssueCategory + AnalysisCommandJobDescription + AnalysisCommandJobRecommendation + AnalysisCommandJobMoreInformation + AnalysisCommandJobMoreInformationlink false - SpDetachDb + BulkInsert - SpDetachDb - SpDetachDbTitle - SpDetachDbImpact - SpDetachDbRecommendation - SpDetachDbMoreInformation - SpDetachDbMoreInformationHyperlink + BulkInsert + BulkInsertTitle + BulkInsertIssueCategory + BulkInsertDescription + BulkInsertRecommendation + BulkInsertMoreInformation + BulkInsertMoreInformationlink false - SpAttachSingleFileDb + PowerShellJob - SpAttachSingleFileDb - SpAttachSingleFileDbTitle - SpAttachSingleFileDbImpact - SpAttachSingleFileDbRecommendation - SpAttachSingleFileDbMoreInformation - SpAttachSingleFileDbMoreInformationHyperlink + PowerShellJob + PowerShellJobTitle + PowerShellJobIssueCategory + PowerShellJobDescription + PowerShellJobRecommendation + PowerShellJobMoreInformation + PowerShellJobMoreInformationlink false - SpDropExtendedProc + MultipleLogFiles - SpDropExtendedProc - SpDropExtendedProcTitle - SpDropExtendedProcImpact - SpDropExtendedProcRecommendation - SpDropExtendedProcMoreInformation - SpDropExtendedProcMoreInformationHyperlink + MultipleLogFiles + MultipleLogFilesTitle + MultipleLogFilesIssueCategory + MultipleLogFilesDescription + MultipleLogFilesRecommendation + MultipleLogFilesMoreInformation + MultipleLogFilesMoreInformationlink + true + + + + ClrStrictSecurity + + ClrStrictSecurity + ClrStrictSecurityTitle + ClrStrictSecurityIssueCategory + ClrStrictSecurityDescription + ClrStrictSecurityRecommendation + ClrStrictSecurityMoreInformation + ClrStrictSecurityMoreInformationlink false - MsDmaMergeJob + SystemProcedures110 - MsDmaMergeJob - MsDmaMergeJobTitle - MsDmaMergeJobImpact - MsDmaMergeJobRecommendation - MsDmaMergeJobMoreInformation - MsDmaMergeJobMoreInformationHyperlink + SystemProcedures110 + SystemProcedures110Title + SystemProcedures110IssueCategory + SystemProcedures110Description + SystemProcedures110Recommendation + SystemProcedures110MoreInformation + SystemProcedures110MoreInformationlink false - SpExecuteExternalScript + ServiceBrokerWithNonLocalAddress - SpExecuteExternalScript - SpExecuteExternalScriptTitle - SpExecuteExternalScriptImpact - SpExecuteExternalScriptRecommendation - SpExecuteExternalScriptMoreInformation - SpExecuteExternalScriptMoreInformationHyperlink + ServiceBrokerWithNonLocalAddress + ServiceBrokerWithNonLocalAddressTitle + ServiceBrokerWithNonLocalAddressIssueCategory + ServiceBrokerWithNonLocalAddressDescription + ServiceBrokerWithNonLocalAddressRecommendation + ServiceBrokerWithNonLocalAddressMoreInformation + ServiceBrokerWithNonLocalAddressMoreInformationlink false - MsDmaAnalysisQueryJob + MIHomogeneousMSDTCTransactSQL - MsDmaAnalysisQueryJob - MsDmaAnalysisQueryJobTitle - MsDmaAnalysisQueryJobImpact - MsDmaAnalysisQueryJobRecommendation - MsDmaAnalysisQueryJobMoreInformation - MsDmaAnalysisQueryJobMoreInformationHyperlink + MIHomogeneousMSDTCTransactSQL + MIHomogeneousMSDTCTransactSQLTitle + MIHomogeneousMSDTCTransactSQLIssueCategory + MIHomogeneousMSDTCTransactSQLDescription + MIHomogeneousMSDTCTransactSQLRecommendation + MIHomogeneousMSDTCTransactSQLMoreInformation + MIHomogeneousMSDTCTransactSQLMoreInformationlink + false + + + + WindowsAuthentication + + WindowsAuthentication + WindowsAuthenticationTitle + WindowsAuthenticationIssueCategory + WindowsAuthenticationDescription + WindowsAuthenticationRecommendation + WindowsAuthenticationMoreInformation + WindowsAuthenticationMoreInformationlink + false + + + + NonANSILeftOuterJoinSyntax + + NonANSILeftOuterJoinSyntax + NonANSILeftOuterJoinSyntaxTitle + NonANSILeftOuterJoinSyntaxIssueCategory + NonANSILeftOuterJoinSyntaxDescription + NonANSILeftOuterJoinSyntaxRecommendation + NonANSILeftOuterJoinSyntaxMoreInformation + NonANSILeftOuterJoinSyntaxMoreInformationlink + false + + + + SyntaxError + + SyntaxError + SyntaxErrorTitle + SyntaxErrorIssueCategory + SyntaxErrorDescription + SyntaxErrorRecommendation + SyntaxErrorMoreInformation + SyntaxErrorMoreInformationlink + false + + + + FastFirstRowHint + + FastFirstRowHint + FastFirstRowHintTitle + FastFirstRowHintIssueCategory + FastFirstRowHintDescription + FastFirstRowHintRecommendation + FastFirstRowHintMoreInformation + FastFirstRowHintMoreInformationlink + false + + + + AssemblyFromFile + + AssemblyFromFile + AssemblyFromFileTitle + AssemblyFromFileIssueCategory + AssemblyFromFileDescription + AssemblyFromFileRecommendation + AssemblyFromFileMoreInformation + AssemblyFromFileMoreInformationlink + false + + + + CryptographicProvider + + CryptographicProvider + CryptographicProviderTitle + CryptographicProviderIssueCategory + CryptographicProviderDescription + CryptographicProviderRecommendation + CryptographicProviderMoreInformation + CryptographicProviderMoreInformationlink + false + + + + SqlMail + + SqlMail + SqlMailTitle + SqlMailIssueCategory + SqlMailDescription + SqlMailRecommendation + SqlMailMoreInformation + SqlMailMoreInformationlink + false + + + + DatabasePrincipalAlias + + DatabasePrincipalAlias + DatabasePrincipalAliasTitle + DatabasePrincipalAliasIssueCategory + DatabasePrincipalAliasDescription + DatabasePrincipalAliasRecommendation + DatabasePrincipalAliasMoreInformation + DatabasePrincipalAliasMoreInformationlink + false + + + + DbCompatLevelLowerThan100 + + DbCompatLevelLowerThan100 + DbCompatLevelLowerThan100Title + DbCompatLevelLowerThan100IssueCategory + DbCompatLevelLowerThan100Description + DbCompatLevelLowerThan100Recommendation + DbCompatLevelLowerThan100MoreInformation + DbCompatLevelLowerThan100MoreInformationlink + false + + + + MergeJob + + MergeJob + MergeJobTitle + MergeJobIssueCategory + MergeJobDescription + MergeJobRecommendation + MergeJobMoreInformation + MergeJobMoreInformationlink + false + + + + NumDbExceeds100 + + NumDbExceeds100 + NumDbExceeds100Title + NumDbExceeds100IssueCategory + NumDbExceeds100Description + NumDbExceeds100Recommendation + NumDbExceeds100MoreInformation + NumDbExceeds100MoreInformationlink false @@ -258,24 +357,117 @@ OpenRowsetWithNonSQLProvider OpenRowsetWithNonSQLProviderTitle - OpenRowsetWithNonSQLProviderImpact + OpenRowsetWithNonSQLProviderIssueCategory + OpenRowsetWithNonSQLProviderDescription OpenRowsetWithNonSQLProviderRecommendation OpenRowsetWithNonSQLProviderMoreInformation - OpenRowsetWithNonSQLProviderMoreInformationHyperlink + OpenRowsetWithNonSQLProviderMoreInformationlink false - CompatLevel + DisableDefCNSTCHK - CompatLevel - CompatLevelTitle - CompatLevelImpact - CompatLevelRecommendation - CompatLevelMoreInformation - CompatLevelMoreInformationHyperlink + DisableDefCNSTCHK + DisableDefCNSTCHKTitle + DisableDefCNSTCHKIssueCategory + DisableDefCNSTCHKDescription + DisableDefCNSTCHKRecommendation + DisableDefCNSTCHKMoreInformation + DisableDefCNSTCHKMoreInformationlink + false + + + + XpCmdshell + + XpCmdshell + XpCmdshellTitle + XpCmdshellIssueCategory + XpCmdshellDescription + XpCmdshellRecommendation + XpCmdshellMoreInformation + XpCmdshellMoreInformationlink + false + + + + MIDatabaseSize + + MIDatabaseSize + MIDatabaseSizeTitle + MIDatabaseSizeIssueCategory + MIDatabaseSizeDescription + MIDatabaseSizeRecommendation + MIDatabaseSizeMoreInformation + MIDatabaseSizeMoreInformationlink true + + ComputeClause + + ComputeClause + ComputeClauseTitle + ComputeClauseIssueCategory + ComputeClauseDescription + ComputeClauseRecommendation + ComputeClauseMoreInformation + ComputeClauseMoreInformationlink + false + + + + MIHeterogeneousMSDTCTransactSQL + + MIHeterogeneousMSDTCTransactSQL + MIHeterogeneousMSDTCTransactSQLTitle + MIHeterogeneousMSDTCTransactSQLIssueCategory + MIHeterogeneousMSDTCTransactSQLDescription + MIHeterogeneousMSDTCTransactSQLRecommendation + MIHeterogeneousMSDTCTransactSQLMoreInformation + MIHeterogeneousMSDTCTransactSQLMoreInformationlink + false + + + + MIInstanceSize + + MIInstanceSize + MIInstanceSizeTitle + MIInstanceSizeIssueCategory + MIInstanceSizeDescription + MIInstanceSizeRecommendation + MIInstanceSizeMoreInformation + MIInstanceSizeMoreInformationlink + false + + + + RAISERROR + + RAISERROR + RAISERRORTitle + RAISERRORIssueCategory + RAISERRORDescription + RAISERRORRecommendation + RAISERRORMoreInformation + RAISERRORMoreInformationlink + false + + + + TransactSqlJob + + TransactSqlJob + TransactSqlJobTitle + TransactSqlJobIssueCategory + TransactSqlJobDescription + TransactSqlJobRecommendation + TransactSqlJobMoreInformation + TransactSqlJobMoreInformationlink + false + + -NvR8b9t2KDYAqFUhEyNVyp53wug=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 \ No newline at end of file + \ No newline at end of file