Bonjour a tous,
J'ai une application en VB.net qui me sert a allez dans ma base de donné SQL. Depuis cette application j’exécute une requête pour créer un user et login dans ma base.
Je cherche une requête SQL qui me permettrait de créer un user que si la table database existe. Sur mon instance je peux avoir [CXmaterial_11] ou [CXmaterial_12] ou les deux.
J'ai testé cette requête (dans le manager studio) mais elle ne fonctionne pas quand une des deux databases n'est pas présente.
quelqu'un a t'il une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 IF EXISTS (SELECT * FROM sys.database_principals WHERE name = N'usrTOTO') DROP USER [usrTOTO] IF EXISTS (SELECT * FROM sys.server_principals WHERE name = N'TOTO') DROP LOGIN [TOTO] CREATE LOGIN [TOTO] WITH PASSWORD='pwd', DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF If exist (select * from master.sys.databases where name = 'CXMaterials_12') Begin use [CxMaterials_12] create user [usrTOTO] from login [TOTO] ALTER USER [usrTOTO] WITH DEFAULT_SCHEMA=[dbo] EXEC sp_addrolemember N'db_datawriter', N'usrTOTO' EXEC sp_addrolemember N'db_datareader', N'usrTOTO' End If exist (select * from master.sys.databases where name = 'CXMaterials_11') Begin use [CxMaterials_11] create user [usrTOTO] from login [TOTO] ALTER USER [usrTOTO] WITH DEFAULT_SCHEMA=[dbo] EXEC sp_addrolemember N'db_datawriter', N'usrTOTO' EXEC sp_addrolemember N'db_datareader', N'usrTOTO' End
Merci d'avance a vous.
Partager