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 :

Problème de procédure stockée sous SQL Server 2000.


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Problème de procédure stockée sous SQL Server 2000.
    Bonjour tout le monde,
    j'essaye de faire fonctionner cette procédure stockée qui est censée me retourner un message d'erreur si la table 'NomTable' est verrouillée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            DECLARE @lBase int
    	DECLARE @lTable int
    	DECLARE @lErr int
     
    	SET NOCOUNT ON
    	SELECT @lBase = DB_ID()
    	SELECT @lTable = OBJECT_ID('NomTable')
    	EXECUTE @lErr = master..xp_CBIsRecordLock @@SPID,@lBase,@lTable,@cbMarq,@lRes OUTPUT
    	IF @lErr <> 0
    		RAISERROR(@lErr,11,1) WITH SETERROR
    Cependant le champs @lRes est toujours à NULL. Si quelqu'un pouvait m'aider ou me proposer une autre solution pour savoir si une table est verrouillée (en cours d'utilisation) se serait sympa.

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    si ma mémoire est bonne, en SQL Server 2000, la table master..syslocks te donne des informations sur les verrous.

    Pour info, en SQL Server 2005, ça donne une requête de ce type :

    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
    SELECT
       tl.resource_type,
       tl.resource_subtype,
       tl.resource_description,
       tl.request_mode,
       tl.request_status
    FROM sys.dm_tran_locks tl
    LEFT JOIN sys.partitions p 
       ON tl.resource_associated_entity_id = p.hobt_id
    WHERE 
       tl.request_session_id <> @@SPID AND
       tl.resource_database_id = DB_ID('mabase') AND
       CASE tl.resource_type
          WHEN 'OBJECT' THEN OBJECT_NAME(tl.resource_associated_entity_id) 
          ELSE OBJECT_NAME(p.object_id)
       END = 'matable'
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 962
    Points
    52 962
    Billets dans le blog
    6
    Par défaut
    SQL Server choisit lui même le type de verrou le plus approprié. Ce peut donc être un verrou de ligne, de clef, de page, d'extensions, de table, de schéma, en fonction du contexte, de la concurrence, de la nature du traitement...etc ! Or vous interroger les méta données uniquement sur un verrou de ligne.... ce n'est donc pas étonnant que cela ne vous retourne rien

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses rudib et SQLpro. En effet un dans la base master me donne le dbid des bases lockées, cependant ce que cherche c'est l'id des tables lockées.

  5. #5
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Citation Envoyé par rudib Voir le message
    si ma mémoire est bonne, en SQL Server 2000, la table master..syslocks te donne des informations sur les verrous.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Les champs de la table master..syslocks sont dbid, page, type, spid. Est-ce le spid qui m'informe sur la table lockée ? Si oui dans quelle table puis-je avoir le nom correspondant et si non a quoi correspond le spid ?

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 962
    Points
    52 962
    Billets dans le blog
    6
    Par défaut
    Intéressez vous à syslockinfo.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Intéressez vous à syslockinfo.
    syslockinfo renseigne sur les bdd mais pas sur les tables.

Discussions similaires

  1. Procédure stockée sous SQL Server et MS access
    Par mfofana dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 02/04/2011, 00h15
  2. Debug de procédure stockée sous SQL Server 2005
    Par verbal34 dans le forum Développement
    Réponses: 0
    Dernier message: 29/09/2009, 17h29
  3. Exécution d'une procédure stockée sous sql server 2000
    Par amirad dans le forum Développement
    Réponses: 2
    Dernier message: 27/04/2009, 09h50
  4. [PowerBuilder 10] Procédure stockée sous SQL Server 2000
    Par digital prophecy dans le forum Powerbuilder
    Réponses: 8
    Dernier message: 11/10/2006, 10h38

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