Als schneller Hintergrund wurde ich beauftragt, Tabellen und Indizes von der PRIMARY-Dateigruppe auf andere Dateigruppen zu verschieben. Um eine Vorstellung zu bekommen, wo alles schon lebt ich die folgende Abfrage bin mit:Warum sind SQL Server Table-Valued Functions in sys.indexes aufgeführt?
SELECT s.name AS schemaName, o.[name] AS ObjectName,
i.[name] indexName,
CASE o.[type]
WHEN 'U' THEN 'User Table'
WHEN 'S' THEN 'System Table'
WHEN 'TT' THEN 'Table Type'
WHEN 'IT' THEN 'Internal Table'
WHEN 'TF' THEN 'Table Valued Function'
ELSE o.[type]
END
AS objectType,
f.[name] AS [FileGroup]
FROM sys.indexes i
INNER JOIN sys.filegroups f
ON i.data_space_id = f.data_space_id
INNER JOIN sys.all_objects o
ON i.[object_id] = o.[object_id]
INNER JOIN sys.schemas s
ON s.schema_id = o.schema_id
WHERE i.data_space_id = f.data_space_id
ORDER BY s.name, o.name, i.name
GO
des Lauf Ich sehe, dass benutzerdefinierte Tabellenwertfunktionen zeigen sich auch hier und sind mit einer Typenbezeichnung aufgeführt von ' HAUFEN'. Warum das? Werden Daten tatsächlich auf die gleiche Weise wie Tabellen und Indizes gespeichert?
Kleine Korrektur: Eine Tabelle ist eine Heap-Tabelle, wenn kein Clustered-Index vorhanden ist. Eine Heap-Tabelle kann eine beliebige Anzahl nicht gruppierter Indizes enthalten. –
Ja danke, @JeroenMostert - wird entsprechend editieren – Clay