IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Comment connaître la taille de toutes les table d'une DB sql2000


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 1
    Par défaut Comment connaître la taille de toutes les table d'une DB sql2000
    Bonjour,
    je tente d'obtenir la taille (Mo) de toutes les tables présentes dans une base de données...

    Voici ce que j'ai fait:
    **********************************************************
    EXEC sp_MSforeachtable @command1="print '?' exec sp_mstablespace ('?')"
    **********************************************************

    Mais avec cela j'obtient un message d'erreur:
    Line 1: Incorrect syntax near '[dbo].[ACCI]'.

    Et cela pour toutes les table présentes dans la DB...
    Qqun a-t-il une idée pour me dépatouiller ???

    En vous remerciant par avance,
    salutations

  2. #2
    Invité
    Invité(e)
    Par défaut
    Disons que ce script pourra t'aider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    declare @id	int			
    declare @type	character(2) 		
    declare	@pages	int			
    declare @dbname sysname
    declare @dbsize dec(15,0)
    declare @bytesperpage	dec(15,0)
    declare @pagesperMB		dec(15,0)
     
    create table #spt_space
    (
    	objid		int null,
    	rows		int null,
    	reserved	dec(15) null,
    	data		dec(15) null,
    	indexp		dec(15) null,
    	unused		dec(15) null
    )
     
    set nocount on
     
    -- Create a cursor to loop through the user tables
    declare c_tables cursor for
    select	id
    from	sysobjects
    where	xtype = 'U'
     
    open c_tables
     
    fetch next from c_tables
    into @id
     
    while @@fetch_status = 0
    begin
     
    	/* Code from sp_spaceused */
    	insert into #spt_space (objid, reserved)
    		select objid = @id, sum(reserved)
    			from sysindexes
    				where indid in (0, 1, 255)
    					and id = @id
     
    	select @pages = sum(dpages)
    			from sysindexes
    				where indid < 2
    					and id = @id
    	select @pages = @pages + isnull(sum(used), 0)
    		from sysindexes
    			where indid = 255
    				and id = @id
    	update #spt_space
    		set data = @pages
    	where objid = @id
     
     
    	/* index: sum(used) where indid in (0, 1, 255) - data */
    	update #spt_space
    		set indexp = (select sum(used)
    				from sysindexes
    				where indid in (0, 1, 255)
    				and id = @id)
    			    - data
    		where objid = @id
     
    	/* unused: sum(reserved) - sum(used) where indid in (0, 1, 255) */
    	update #spt_space
    		set unused = reserved
    				- (select sum(used)
    					from sysindexes
    						where indid in (0, 1, 255)
    						and id = @id)
    		where objid = @id
     
    	update #spt_space
    		set rows = i.rows
    			from sysindexes i
    				where i.indid < 2
    				and i.id = @id
    				and objid = @id
     
    	fetch next from c_tables
    	into @id
    end
     
    select 	TableName = (select left(name,60) from sysobjects where id = objid),
    	Rows = convert(char(11), rows),
    	ReservedKB = ltrim(str(reserved * d.low / 1024.,15,0) + ' ' + 'KB'),
    	DataKB = ltrim(str(data * d.low / 1024.,15,0) + ' ' + 'KB'),
    	IndexSizeKB = ltrim(str(indexp * d.low / 1024.,15,0) + ' ' + 'KB'),
    	UnusedKB = ltrim(str(unused * d.low / 1024.,15,0) + ' ' + 'KB')
     
    from 	#spt_space, master.dbo.spt_values d
    where 	d.number = 1
    and 	d.type = 'E'
    order by reserved desc
    drop table #spt_space
    close c_tables
    deallocate c_tables
    Dernière modification par Invité ; 11/09/2006 à 12h12.

Discussions similaires

  1. [2005] Comment faire un truncate de toutes les tables d'un schéma ?
    Par clementratel dans le forum SSIS
    Réponses: 12
    Dernier message: 24/03/2011, 10h00
  2. Comment lister toutes les tables d'une BD ?
    Par jmulans dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/11/2007, 19h29
  3. Comment remplir un Dataset avec toutes les tables d'une db?
    Par Mr_Welby dans le forum Accès aux données
    Réponses: 1
    Dernier message: 14/05/2007, 15h29
  4. taille de toutes les tables.....
    Par exyacc dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 30/01/2006, 12h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo