Blog di Zanirato Luca

Microsoft SQL Server Database!

Blog - Sites Links

Informazioni TABELLE Database

Questa estrapolazione dà una visione più chiara del contenuto principale di un Database :

SELECT
OBJECT_NAME(obj.id) AS 'Tabella',
SUBSTRING(col.name,1, 30) AS 'Colonne',
CASE WHEN EXISTS (
			Select name 
			From syscolumns sc 
			Where	sc.id = obj.id and 
				sc.colid = col.colid and 
				sc.colstat & 1 = 1
		 ) THEN
			 'Si'
		   ELSE
			''
END AS 'Identity',
CASE 	WHEN UPPER(TYPE_NAME(col.xtype)) = 'DECIMAL' THEN
		UPPER(RTRIM(TYPE_NAME(col.xtype)) + 
'(' + CAST(COL.xprec AS VARCHAR) + ','
+ CAST(COL.xscale AS VARCHAR) + ')') WHEN UPPER(TYPE_NAME(col.xtype)) = 'VARCHAR' THEN UPPER(RTRIM(TYPE_NAME(col.xtype)) + '('
+ CAST(COL.length AS VARCHAR) + ')') WHEN UPPER(TYPE_NAME(col.xtype)) = 'NVARCHAR' THEN UPPER(RTRIM(TYPE_NAME(col.xtype)) + '('
+ CAST(COL.length / 2 AS VARCHAR) + ')') ELSE
UPPER(RTRIM(TYPE_NAME(col.xtype))) END AS 'Tipo di Dato', CASE WHEN col.cdefault <> 0
THEN
( SELECT REPLACE(REPLACE(text, '(', ''), ')', '') FROM syscomments def WHERE def.id = col.cdefault ) ELSE '' END AS 'Valore Default', CASE col.isnullable WHEN 0 THEN 'Not Null' ELSE '' END AS 'Valore Nullo'
FROM syscolumns col
INNER JOIN sysobjects obj ON 	col.id = obj.id Or 
col.id = cast(obj.parent_obj as int)
WHERE obj.xtype = 'U'
ORDER BYobj.name, col.colid 
 

Ciao a Tutti Wink