SQL MS SQL Tabellen Filegroup herauslesen.

roker002

Commander
Dabei seit
Dez. 2007
Beiträge
2.050
Eine Frage. Man kann bei den Indizes die Filegroups herauslesen (wenn man mehrere Filegroups erstellt). Wie kann man die Filegroup für eine Tabelle finden?

Hab schon einen script geschrieben, dass die Tabelle erstellt und die Constraints. Mir fehlt noch Tabellen File Group.

Wenn jemand eine Idee hat wie man es herauslesen kann....

Danke


hmm es scheint doch aussichtslos zu sein, File Group für eine Tabelle zu bestimmen. Hier ein Beispiel

--drop table [dbo].[test123]

CREATE TABLE [dbo].[test123](
[id] [int] IDENTITY(1,1) NOT NULL
CONSTRAINT [PK_test123_1] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEX]
) ON [PRIMARY]

SELECT t.name, d.*, i.*
FROM sys.filegroups d
JOIN sys.indexes i
ON i.data_space_id = d.data_space_id
JOIN sys.tables t
ON t.object_id = i.object_id
WHERE 1=1
and i.index_id<2 -- could be heap or a clustered table
AND t.name= 'test123'
AND t.schema_id = schema_id('dbo')
Falls es doch gehen würde, wäre es super, wenn jemand mitteilen würde.

Vielleicht ist es ein Feature aber Management Studio selbst kann es nicht richtig auflösen.
Wenn ich Create Script auf die Tabelle mache bekomme ich.

CREATE TABLE [dbo].[test123](
[id] [int] IDENTITY(1,1) NOT NULL,
CONSTRAINT [PK_test123_1] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [INDEX]
) ON [INDEX]
 
Zuletzt bearbeitet:

Jomelo

Cadet 4th Year
Dabei seit
Jan. 2012
Beiträge
99
Vielleicht macht es mehr Sinn die Frage in einem Fach-Forum zu stellen, da hier sehr viele mit Halbwissen und Normalen Wissen rum geistern aber deine Frage schon sehr speziell ist.
 
Y

yxcv

Gast
Hallo roker002, so geht's.


PHP:
SELECT
	 obj.name	AS ObjName
	,idx.name	AS IdxName
	,idx.type_desc	AS IdxTyp
	,filegrp.name	AS FileGrpName
FROM sys.indexes idx
INNER JOIN sys.filegroups filegrp
	ON idx.data_space_id = filegrp.data_space_id
INNER JOIN sys.all_objects obj
	ON idx.OBJECT_ID = obj.OBJECT_ID
WHERE
	    idx.type 	!= 0	--keinen HEAP-Index
	AND obj.type	= 'U'	--Tabellen
	AND obj.name	= 'test123'
ORDER BY
	 obj.name
	,filegrp.name
 
Top