Saturday, April 4, 2009

How to Select All Database tables and columns with datatypes and length in SQL Server 2005

SELECT SysObjects.[Name] as TableName,
SysColumns.[Name] as ColumnName,
CASE SysTypes.[Name]
WHEN
'sysname'
THEN
'nvarchar'
ELSE
SysTypes.[Name]
END
AS [Name]
,
CASE SysTypes.[Name]
WHEN
'nvarchar'
THEN
SysColumns.[Length] / 2
WHEN
'sysname'
THEN
SysColumns.[Length] / 2
ELSE
SysColumns.[Length]
END
AS [Length]
FROM
SysObjects INNER JOIN SysColumns
ON SysObjects.[Id] = SysColumns.[Id]
INNER JOIN SysTypes
ON SysTypes.[xtype] = SysColumns.[xtype]
WHERE SysObjects.[type] =
'U'
ORDER BY SysObjects.[Name]