Click here to Skip to main content
15,883,705 members
Articles / Database Development / SQL Server / SQL Server 2008

Library for scripting SQL Server database objects with examples

Rate me:
Please Sign up or sign in to vote.
4.93/5 (138 votes)
8 Nov 2011CPOL13 min read 231.5K   13.3K   252  
This article is about library for scripting SQL Server database objects and examples representing how this library can be used.
select 
	t.Object_Id,
	t.Name,
	s.name as [Schema],
	t.is_replicated AS [Replicated],
	t.uses_ansi_nulls AS [AnsiNullsStatus],
	CAST(OBJECTPROPERTY(t.object_id,N'IsQuotedIdentOn') AS bit) AS [QuotedIdentifierStatus],
	CAST(0 as bit) AS [ChangeTrackingEnabled],
	CAST(0 AS bit) AS [TrackColumnsUpdatedEnabled],
	[FileGroup]=ISNULL((
		SELECT 
			f.[name] 
		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.tables tt on i.object_id=tt.object_id 
			where i.[type]=0 and i.object_id=t.object_id
		),N'' ),	
	[PartitionScheme] = ISNULL((
		select ps.name
		from
			sys.tables tt
		LEFT JOIN sys.indexes idx on idx.object_id=tt.object_id
		LEFT JOIN sys.data_spaces ds on idx.data_space_id=ds.data_space_id
		LEFT JOIN sys.partition_schemes ps on ps.data_space_id = ds.data_space_id
		where ds.type='PS' and tt.object_id=t.object_id
		),N''),
	[FileStreamGroup] = ISNULL((select ds.name from sys.data_spaces ds where ds.data_space_id=t.filestream_data_space_id and ds.type='FD' ),N''),
	[FileStreamPartitionScheme]= ISNULL((select ds.name from sys.data_spaces ds where ds.data_space_id=t.filestream_data_space_id and ds.type='PS' ),N''),
	[TextFileGroup]=ISNULL(dstext.name,N''),
	[Description] = ISNULL((select value from fn_listextendedproperty ('MS_Description', 'schema', s.name, 'table', t.name, NULL, NULL)),N''),
	[PartitionedColumn] = ISNULL(
	
		(select c.name
	from
		sys.columns c
		LEFT JOIN sys.indexes i on i.object_id = c.object_id
		LEFT JOIN sys.index_columns ic on ic.object_id=c.object_id
		LEFT JOIN sys.data_spaces ds on i.data_space_id=ds.data_space_id
		LEFT JOIN sys.partition_schemes ps on ps.data_space_id=ds.data_space_id
		where i.index_id=ic.index_id
		and c.object_id=t.object_id
		and ds.type='PS'
		and ic.column_id=c.column_id),N''
	)
from
	sys.tables t
	LEFT OUTER JOIN sys.schemas s on s.schema_id=t.schema_id
	LEFT OUTER JOIN sys.data_spaces AS dsText  ON t.lob_data_space_id = dstext.data_space_id
	--LEFT OUTER JOIN sys.change_tracking_tables AS ctt ON ctt.object_id = t.object_id ;

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect Marwin Cassovia Soft
Slovakia Slovakia
My name is Robert Kanasz and I have been working with ASP.NET, WinForms and C# for several years.
MCSD - Web Applications
MCSE - Data Platform
MCPD - ASP.NET Developer 3.5
- Web Developer 4
MCITP - Database Administrator 2008
- Database Developer 2008
MCSA - SQL Server 2012
MCTS - .NET Framework 3.5, ASP.NET Applications
- SQL Server 2008, Database Development
- SQL Server 2008, Implementation and Maintenance
- .NET Framework 4, Data Access
- .NET Framework 4, Service Communication Applications
- .NET Framework 4, Web Applications
MS - Programming in HTML5 with JavaScript and CSS3 Specialist

Open source projects: DBScripter - Library for scripting SQL Server database objects


Please, do not forget vote

Comments and Discussions