SP_MSforeachdb taille de variable
Bonjour tous,
J'ai besoin de vos lumières :)
Je suis en train de créer une requête qui fait des contrôles de nommage de table sur chaque base de données. Ex:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| IF DB_NAME() LIKE 'Source%'
BEGIN
SELECT
CASE
WHEN TABLE_NAME LIKE 'zzz%' THEN 'A supprimer'
WHEN TABLE_NAME LIKE 'TD_%' THEN 'Table de dimension'
WHEN TABLE_NAME LIKE 'TF_%' THEN 'Table de faits'
WHEN TABLE_NAME LIKE 'CDE_%' THEN 'Tables denrichissement ' ELSE 'Pas de règles de nommage pour les bases Source_%'
END AS TABLE_TYPE,
DB_NAME() AS DATABASE_NAME,
TABLE_NAME,
CASE
WHEN TABLE_NAME LIKE 'zzz%' THEN 1 ELSE 0
END AS CONTROL_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
END
IF DB_NAME() LIKE 'Prochain type de base....'
BEGIN
Requête
END
etc. etc. |
Ma requête marche nickel quand je la lance avec un USE XXX GO dans SSMS.
Cependant je veux industrialiser ce truc en utilisant la procédure stockée master.sys.SP_MSforeachDB et passer ma requête en tant que variable pour le SQL dynamique.
Seul souci : le type de données de variable pour la procédure stockée et limité (NVARCHAR(4000)) je pense. Et ma requête fait plus de 5000 :furieux:
J'ai tenté de recréer la PS avec des variables NVARCHAR(MAX) mais ça marche pas puisqu'il appelle d'autres PS de façon imbriquée....
Any ideas?!