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

Développement SQL Server Discussion :

Connaitre l'état du IDENTITY_INSERT d'une table


Sujet :

Développement SQL Server

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Par défaut Connaitre l'état du IDENTITY_INSERT d'une table
    Quel requête permet de savoir si IDENTITY_INSERT est à ON ou OFF sur une table donnée ?

    Merci beaucoup

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 021
    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 : 22 021
    Billets dans le blog
    6
    Par défaut
    Je n'ai pas trouvé... Mais je pense pas qu'on puisse le savoir.

    Vais remonter cela au staff SQL Server pour voir si c'est possible !

    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/ * * * * *

  3. #3
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    On ne peut pas comme précisé par SqlPro.
    Vu que IDENTITY_INSERT travaille au niveau session ... mais bon peut être que le staff sqlserver pourra nous renseigner.

    J'avais fait un script de "dépannage" car je n'avais pas non plus trouvé cette ption. Si ca peut vous aider...

    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
     
    DECLARE @table_name VARCHAR(50)
     
    BEGIN TRY	
    	-- On provoque l'erreur par le biais table de travail que l'on aura créé avec une colonne identity
    	-- On initialise identity_insert à ON . --> si cette option déjà activée sur une autre table une erreur est levée
    	SET IDENTITY_INSERT dbo.test ON
    END TRY
    BEGIN CATCH 
    	IF ERROR_NUMBER() = 8107
    	BEGIN
    		SELECT @table_name = SUBSTRING(ERROR_MESSAGE(),CHARINDEX('''',ERROR_MESSAGE()) + 1,CHARINDEX('''',RIGHT(ERROR_MESSAGE(),LEN(ERROR_MESSAGE()) - CHARINDEX('''',ERROR_MESSAGE()))) - 1);
    		SELECT @table_name;
                             // .... traitement ...
    	END
    END CATCH;

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 021
    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 : 22 021
    Billets dans le blog
    6
    Par défaut
    Je vous confirme : il n'y a pas moyen.
    Si la solution de mikedavem est la seule elle possède de multiples inconvénients dont l'un consiste au fait qu'en cas d'utilisation de MARS, ceci risque d'entraîner un report de l'erreur pour tous les result set.

    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/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. connaitre le nom des colonnes d'une table
    Par vincent.mbg dans le forum SQLite
    Réponses: 2
    Dernier message: 08/04/2009, 15h17
  2. Connaitre le user qui a dropé une table
    Par LBO72 dans le forum Administration
    Réponses: 1
    Dernier message: 20/03/2009, 17h30
  3. Réponses: 2
    Dernier message: 14/12/2006, 10h35
  4. Connaitre le nombre d'insertion dans une table
    Par vodevil dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 01/11/2005, 16h41

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