Bonjour,
J'ai une question qui me trotte dans la tête depuis pas mal de temps concernant les schémas et user dans PowerDesigner.
Si je me trompe, faut me corriger car je ne sais pas.
Dans PowerDesigner, la notion de schéma me semble ne pas exister mais peut être assimilé à la notion de ‘user’ (owner). Correcte ?
Donc dans PD 1.5.2 , c'est toujours la vielle notion des owner pour une table et non pas des schémas qui est apparu avec la version 2005 de sql server.
Par contre ça correspond à 100% avec la notion d'oracle. Si c’est correct.
D’ailleurs cette notion pose problème lors de la génération SQL pour sql server 2008 R2. Car parfois, il confond user et schéma.
Exemple pour créer une table avec ‘Extended Properties ’ comme une description en choisissant le DBMS ‘SQLSERVER 2008’
Voici ce qu’ils génèrent
Pour faire plus claire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 execute sp_addextendedproperty 'MS_Description', '!!! multi Countries', 'user', 'batch', 'table', 'tbl_Computation', 'column', 'Computation_bmk_Output_Countries' go
Mais en 2008 pas compatible car le user est remplacé par schéma
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 execute sys.sp_addextendedproperty @name = 'MS_Description', @value = 'Replace the old batchID', @level0type = 'user', @level0name = 'batch', @level1type = 'table' , @level1name = 'tbl_Computation' Go
Ceci on peut changer les setting dans ‘DBMS properties’
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 execute sys.sp_addextendedproperty @name = 'MS_Description', @value = 'Replace the old batchID', @level0type = 'SCHEMA', @level0name = 'batch', @level1type = 'table' , @level1name = 'tbl_Computation' Go
MSSQLSRV2008::Script\Objects\Table\TableComment
Celui que j’ai modifié
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 [%OWNER%?[.O:[execute ][exec ]][sys.]sp_addextendedproperty [%R%?[@%S%=][N]]'MS_Description', [%R%?[@%S%=][N]]%.q:COMMENT%, [%R%?[@%S%=][N]]'[.O:[user][schema]]', [%R%?[@%S%=][N]]%.q:OWNER%, [%R%?[@%S%=][N]]'table', [%R%?[@%S%=][N]]%.q:TABLE% :declare @CurrentUser sysname select @CurrentUser = user_name() [.O:[execute ][exec ]][sys.]sp_addextendedproperty [%R%?[@%S%=][N]]'MS_Description', [%R%?[@%S%=][N]]%.q:COMMENT%, [%R%?[@%S%=][N]]'user', [%R%?[@%S%=][N]]@CurrentUser, [%R%?[@%S%=][N]]'table', [%R%?[@%S%=][N]]%.q:TABLE% ]
Mais aussi on peut changer le stéréotype du "user" en Schéma qui pour moi n'est pas correcte avec le philosophie MS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 [%OWNER%?[.O:[execute ][exec ]][sys.]sp_addextendedproperty [%R%?[@%S%=][N]]'MS_Description', [%R%?[@%S%=][N]]%.q:COMMENT%, [%R%?[@%S%=][N]]'schema', [%R%?[@%S%=][N]]%.q:OWNER%, [%R%?[@%S%=][N]]'table', [%R%?[@%S%=][N]]%.q:TABLE% :declare @CurrentUser sysname select @CurrentUser = user_name() [.O:[execute ][exec ]][sys.]sp_addextendedproperty [%R%?[@%S%=][N]]'MS_Description', [%R%?[@%S%=][N]]%.q:COMMENT%, [%R%?[@%S%=][N]]'user', [%R%?[@%S%=][N]]@CurrentUser, [%R%?[@%S%=][N]]'table', [%R%?[@%S%=][N]]%.q:TABLE% ]
J'aimerais avoir votre avis.
Merci encore
Partager