Udostępnij za pośrednictwem


sys.dm_db_persisted_sku_features (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Niektóre funkcje aparatu bazy danych zmieniają sposób przechowywania informacji w plikach bazy danych. Te funkcje są ograniczone do określonych wersji programu SQL Server. Nie można przenieść bazy danych zawierającej te funkcje do wersji programu SQL Server, która ich nie obsługuje. Użyj dynamicznego widoku zarządzania sys.dm_db_persisted_sku_features, aby wyświetlić listę funkcji specyficznych dla wersji, które są włączone w bieżącej bazie danych.

Nazwa kolumny Typ danych Opis
feature_name nazwa systemu Zewnętrzna nazwa funkcji, która jest włączona w bazie danych, ale nie jest obsługiwana we wszystkich wersjach programu SQL Server. Aby można było przeprowadzić migrację bazy danych do wszystkich dostępnych wersji programu SQL Server, należy usunąć tę funkcję.
feature_id Identyfikator funkcji skojarzony z tą funkcją. Zidentyfikowane tylko do celów informacyjnych. Nieobsługiwane. Zgodność w przyszłości nie jest gwarantowana.

Uprawnienia

W przypadku programu SQL Server 2019 (15.x) i poprzednich wersji wymagane jest uprawnienie WYŚWIETL STAN BAZY danych w bazie danych.

W przypadku programu SQL Server 2022 (16.x) i nowszych wersji wymagane jest uprawnienie WYŚWIETL STAN WYDAJNOŚCI BAZY danych w bazie danych.

Uwagi

Jeśli w bazie danych nie ma żadnych funkcji, które mogą być ograniczone przez określoną edycję, widok nie zwraca żadnych wierszy.

sys.dm_db_persisted_sku_features może wyświetlić następujące funkcje zmieniające się w bazie danych jako ograniczone do określonych wersji programu SQL Server:

  • ChangeCapture: wskazuje, że baza danych ma włączone przechwytywanie zmian danych. Aby usunąć przechwytywanie zmian danych, użyj procedury składowanej sys.sp_cdc_disable_db. Aby uzyskać więcej informacji, zobacz About Change Data Capture (SQL Server).

  • ColumnStoreIndex: wskazuje, że co najmniej jedna tabela ma indeks magazynu kolumn. Aby umożliwić przeniesienie bazy danych do wersji programu SQL Server, która nie obsługuje tej funkcji, użyj DROP INDEX lub instrukcji ALTER INDEX, aby usunąć indeks magazynu kolumn. Aby uzyskać więcej informacji, zobacz Indeksy magazynu kolumn.

  • kompresja: wskazuje, że co najmniej jedna tabela lub indeks używa kompresji danych lub formatu magazynu vardecimal. Aby umożliwić przeniesienie bazy danych do wersji programu SQL Server, która nie obsługuje tej funkcji, użyj instrukcji alter table alter table lub ALTER INDEX, aby usunąć kompresję danych. Aby usunąć format magazynu vardecimal, użyj instrukcji sp_tableoption. Aby uzyskać więcej informacji, zobacz Kompresja danych.

  • multipleFSContainers: Wskazuje, że baza danych używa wielu kontenerów FILESTREAM. Baza danych ma grupę plików FILESTREAM z wieloma kontenerami (plikami). Aby uzyskać więcej informacji, zobacz FILESTREAM (SQL Server).

  • InMemoryOLTP: wskazuje, że baza danych używa In-Memory OLTP. Baza danych ma grupę plików MEMORY_OPTIMIZED_DATA. Aby uzyskać więcej informacji, zobacz In-Memory OLTP (optymalizacjaIn-Memory).

  • Partycjonowanie. Wskazuje, że baza danych zawiera tabele partycjonowane, indeksy partycjonowane, schematy partycji lub funkcje partycji. Aby umożliwić przeniesienie bazy danych do wersji programu SQL Server innej niż Enterprise lub Developer, nie jest niewystarczające zmodyfikowanie tabeli w jednej partycji. Należy usunąć tabelę partycjonowaną. Jeśli tabela zawiera dane, użyj funkcji SWITCH PARTITION, aby przekonwertować każdą partycję na tabelę niepartycyjną. Następnie usuń tabelę partycjonowaną, schemat partycji i funkcję partycji.

  • TransparentDataEncryption. Wskazuje, że baza danych jest szyfrowana przy użyciu przezroczystego szyfrowania danych. Aby usunąć przezroczyste szyfrowanie danych, użyj instrukcji ALTER DATABASE. Aby uzyskać więcej informacji, zobacz Transparent Data Encryption (TDE).

Nuta

Począwszy od programu SQL Server 2016 (13.x) z dodatkiem Service Pack 1, te funkcje, z wyjątkiem TransparentDataEncryption są dostępne w wielu wersjach programu SQL Server, a nie tylko w wersjach Enterprise lub Developer.

Aby określić, czy baza danych korzysta z funkcji ograniczonych do określonych edycji, wykonaj następującą instrukcję w bazie danych:

SELECT feature_name
FROM sys.dm_db_persisted_sku_features;
GO

Aby uzyskać listę funkcji obsługiwanych przez wersje programu SQL Server w systemie Windows, zobacz:

Aby uzyskać listę funkcji obsługiwanych przez wersje programu SQL Server w systemie Linux, zobacz:

  • dynamiczne widoki zarządzania systemu
  • dynamiczne widoki zarządzania związane z bazą danych (Transact-SQL)