OVH Cloud OVH Cloud

T-SQL

4 réponses
Avatar
nono
Bonjour,
Je souhaite obtenir la taille, le nbe de lignes,etc.. pour chaque table de
l'ensemble des bases de données d'un serveur. En utilisant des curseurs
j'arrive parcourir l'ensemble des bases et de leurs tables mais je bloque que
le point suivant. Le sp_spacesed necessité de passer des guillemets autour de
la variable et je n'arrive pas à trouver la subtilité pour le faire. Ok, je
suis pas développeut à la base et je ne découvre le T-SQL que depsui ce matin.
Voici la requête.
exec ('use ' + @basename + ' exec' + ' sp_spaceused' + @tablename)
Merci.

4 réponses

Avatar
Philippe T [MS]
Bonjour,

Il manque juste un espace après sp_spaceused !!!

exec ('use ' + @basename + ' exec' + ' sp_spaceused ' + @tablename)

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"nono" wrote in message
news:
Bonjour,
Je souhaite obtenir la taille, le nbe de lignes,etc.. pour chaque table de
l'ensemble des bases de données d'un serveur. En utilisant des curseurs
j'arrive parcourir l'ensemble des bases et de leurs tables mais je bloque
que
le point suivant. Le sp_spacesed necessité de passer des guillemets autour
de
la variable et je n'arrive pas à trouver la subtilité pour le faire. Ok,
je
suis pas développeut à la base et je ne découvre le T-SQL que depsui ce
matin.
Voici la requête.
exec ('use ' + @basename + ' exec' + ' sp_spaceused' + @tablename)
Merci.


Avatar
bruno reiter [MVP]
peut etre ça peut te servir :

create table #count_tab
(
name nvarchar(222),
rows int,
reserved nvarchar(55),
data nvarchar(55),
index_size nvarchar(55),
unused nvarchar(55)
)
go

sp_msforeachtable @command1 = 'insert #count_tab exec sp_spaceused ''?'''

select 'Data+Idx MB'=(convert(int,replace(data,'
KB',''))+convert(int,replace(index_size,' KB','')))/1024, * from #count_tab
order by 3 desc

drop table #count_tab
go




br

"nono" wrote in message
news:
Bonjour,
Je souhaite obtenir la taille, le nbe de lignes,etc.. pour chaque table de
l'ensemble des bases de données d'un serveur. En utilisant des curseurs
j'arrive parcourir l'ensemble des bases et de leurs tables mais je bloque


que
le point suivant. Le sp_spacesed necessité de passer des guillemets autour


de
la variable et je n'arrive pas à trouver la subtilité pour le faire. Ok,


je
suis pas développeut à la base et je ne découvre le T-SQL que depsui ce


matin.
Voici la requête.
exec ('use ' + @basename + ' exec' + ' sp_spaceused' + @tablename)
Merci.


Avatar
nono
Merci.
Le probléme n'est pas l'espasce mais de mette @tablename entre guillemet.
Cordialement.

"Philippe T [MS]" a écrit :

Bonjour,

Il manque juste un espace après sp_spaceused !!!

exec ('use ' + @basename + ' exec' + ' sp_spaceused ' + @tablename)

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"nono" wrote in message
news:
> Bonjour,
> Je souhaite obtenir la taille, le nbe de lignes,etc.. pour chaque table de
> l'ensemble des bases de données d'un serveur. En utilisant des curseurs
> j'arrive parcourir l'ensemble des bases et de leurs tables mais je bloque
> que
> le point suivant. Le sp_spacesed necessité de passer des guillemets autour
> de
> la variable et je n'arrive pas à trouver la subtilité pour le faire. Ok,
> je
> suis pas développeut à la base et je ne découvre le T-SQL que depsui ce
> matin.
> Voici la requête.
> exec ('use ' + @basename + ' exec' + ' sp_spaceused' + @tablename)
> Merci.





Avatar
Philippe T [MS]
Bonjour,

Pour moi la commande marche très bien : si je défini en amont @basename et
@tabname, j'ai bien le résultat du sp_spaceused !!!

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"nono" wrote in message
news:
Merci.
Le probléme n'est pas l'espasce mais de mette @tablename entre guillemet.
Cordialement.

"Philippe T [MS]" a écrit :

Bonjour,

Il manque juste un espace après sp_spaceused !!!

exec ('use ' + @basename + ' exec' + ' sp_spaceused ' + @tablename)

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"nono" wrote in message
news:
> Bonjour,
> Je souhaite obtenir la taille, le nbe de lignes,etc.. pour chaque table
> de
> l'ensemble des bases de données d'un serveur. En utilisant des curseurs
> j'arrive parcourir l'ensemble des bases et de leurs tables mais je
> bloque
> que
> le point suivant. Le sp_spacesed necessité de passer des guillemets
> autour
> de
> la variable et je n'arrive pas à trouver la subtilité pour le faire.
> Ok,
> je
> suis pas développeut à la base et je ne découvre le T-SQL que depsui ce
> matin.
> Voici la requête.
> exec ('use ' + @basename + ' exec' + ' sp_spaceused' + @tablename)
> Merci.