IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

[2005] Lancer une requête stockée dans un champs d'une table


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Points : 8
    Points
    8
    Par défaut [2005] Lancer une requête stockée dans un champs d'une table
    Bonjour,

    J'aurais une question, j'ai la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select 'grant update, insert, delete on dbo.TA_'+dt.nom + ' to ' + dp.personne as test
    	from auto da
    	left join table dt on dt.id_table=da.id_table
    	left join personnel dp on dp.id_personnel=da.id_personnel
    Ca me permet donc d'avoir une colonne contenant X lignes qui ajoute les droits sur différentes tables sur différentes tables.

    J'aimerais maintenant "utiliser" ces grant, en effet c'est bien que je me les affiche mais le but c'est que chaque soir cette requête se lance et que les mises à jours des droits s'appliquent.

    Pourriez-vous m'indiquez la marche à suivre svp.
    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    sql dynamique dans un job

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Effectivement, vous pouvez créer la procédure stockée suivante :

    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
    CREATE PROCEDURE usp_grant_permissions
    AS
    BEGIN
    	DECLARE @sql nvarchar(max)
     
    	SELECT		@sql = CASE WHEN @sql IS NULL THEN '' ELSE @sql + ';' END
    			+ 'GRANT UPDATE, INSERT, DELETE ON dbo.TA_' + dt.nom + ' TO ' + dp.personne AS test
    	FROM		dbo.auto AS da
    	LEFT JOIN	dbo.table AS dt
    				ON dt.id_table = da.id_table
    	LEFT JOIN	dbo.personnel AS dp
    				ON dp.id_personnel = da.id_personnel
     
    	--PRINT @sql
    	EXEC (@sql)
    END
    Et l'appeler dans un travail de l'agent SQL Server.
    Je vous conseille néanmoins, dans un premier temps, de dé-commenter le PRINT et de commenter le EXEC : cela vous permettra de vous assurer du code qui est généré

    @++

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Niquel merci à vous deux !

    Je partais sur des trucs compliqués (curseur) pour pas grand chose !

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Ravi de vous avoir aidé !

    Évitez les curseurs, qui vont à l'encontre de ce qu'est SQL : déclaratif et ensembliste. Donc forcément, ils sont contre-performants.

    @++

Discussions similaires

  1. [MySQL] Afficher une image stockée dans un champs blob
    Par encoupe dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/11/2006, 12h00
  2. Réponses: 2
    Dernier message: 20/10/2006, 19h28
  3. Afficher une Image stockée dans un champs BLOB oracle
    Par nonaparus dans le forum Access
    Réponses: 1
    Dernier message: 18/10/2006, 08h26
  4. Réponses: 1
    Dernier message: 18/05/2006, 12h52
  5. Réponses: 3
    Dernier message: 25/04/2006, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo