Les schamas SQLSERVER >2005 et Oracle
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
Code:
1 2 3 4
| execute sp_addextendedproperty 'MS_Description',
'!!! multi Countries',
'user', 'batch', 'table', 'tbl_Computation', 'column', 'Computation_bmk_Output_Countries'
go |
Pour faire plus claire
Code:
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 |
Mais en 2008 pas compatible car le user est remplacé par schéma
Code:
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 |
Ceci on peut changer les setting dans ‘DBMS properties’
MSSQLSRV2008::Script\Objects\Table\TableComment
Code:
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%
] |
Celui que j’ai modifié
Code:
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%
] |
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
J'aimerais avoir votre avis.
Merci encore