OVH Cloud OVH Cloud

dbcc indexdefrag

2 réponses
Avatar
Brigitte
Bonjour,

je suis à la recherche d'un script me permettant d'utiliser dbcc
indexdefrag mais comprenant la gestion du owner pouvant être différent de dbo.

Merci

Bonne fin de journée

Brigitte

2 réponses

Avatar
SQLpro [MVP]
Brigitte a écrit :
Bonjour,

je suis à la recherche d'un script me permettant d'utiliser dbcc
indexdefrag mais comprenant la gestion du owner pouvant être différent de dbo.



il suffit de concaténer schéma et objet avec un point séparatif dans le
second paramètre.

Pour déterminer les tables et leurs schéma associé (c'est pas un
utilisateur contrairement à une idée répandue), voici un exemple de
requête :

SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES AS IST
WHERE NOT EXISTS (SELECT u.name as SCHEMA_NAME, o.name AS TABLE_NAME
FROM sysobjects o
INNER JOIN sysusers u
ON o.uid = u.uid
WHERE (o.xtype = 'S'
OR u.name +'.' + o.name = 'dbo.dtproperties')
AND IST.TABLE_NAME = o.name
AND IST.TABLE_SCHEMA = u.name)
AND TABLE_TYPE = 'BASE TABLE'


A +


Merci

Bonne fin de journée

Brigitte




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Brigitte
Merci

Bonne soirée

Brigitte

"SQLpro [MVP]" a écrit :

Brigitte a écrit :
> Bonjour,
>
> je suis à la recherche d'un script me permettant d'utiliser dbcc
> indexdefrag mais comprenant la gestion du owner pouvant être différent de dbo.

il suffit de concaténer schéma et objet avec un point séparatif dans le
second paramètre.

Pour déterminer les tables et leurs schéma associé (c'est pas un
utilisateur contrairement à une idée répandue), voici un exemple de
requête :

SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES AS IST
WHERE NOT EXISTS (SELECT u.name as SCHEMA_NAME, o.name AS TABLE_NAME
FROM sysobjects o
INNER JOIN sysusers u
ON o.uid = u.uid
WHERE (o.xtype = 'S'
OR u.name +'.' + o.name = 'dbo.dtproperties')
AND IST.TABLE_NAME = o.name
AND IST.TABLE_SCHEMA = u.name)
AND TABLE_TYPE = 'BASE TABLE'


A +

>
> Merci
>
> Bonne fin de journée
>
> Brigitte


--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************