bonjour je veux supprimer un clé primaire d'un tableau j'arrive pas comment faire ????????????
je vous demande de m'aider
merci d'avance
bonjour je veux supprimer un clé primaire d'un tableau j'arrive pas comment faire ????????????
je vous demande de m'aider
merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part alter table .... drop constraint ...
Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2
N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD
Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
Bonjour,
J'ai essayé la commande et ça marche très bien lorsque je connais le nom de la clé primaire.
Seulement, maintenant je veux créer un Script dynamique qui permet de supprimer la clé primaire sans connaître son nom.
Je sais qu'on peut récupérer le nom de la clé en utilisant:
Donc j'ai essayé la commande :SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'Nom_Table'
Malheureusement, elle me sorte une erreur.ALTER TABLE [products]
DROP CONSTRAINT (SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'Nom_Table')
J'aimerai bien que vous m'aider pour trouver une solution.
Cordialement
Bonjour,
Tu peux utiliser du SQL dynamique du genre :
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 @ma_table VARCHAR(250) SET @ma_table = 'nom_de_la_table' DECLARE @ma_contrainte VARCHAR(250) DECLARE @mon_instruction NVARCHAR(1000) SELECT @ma_contrainte = CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = @ma_table AND CONSTRAINT_type ='PRIMARY KEY' SET @mon_instruction = 'ALTER TABLE '+ @ma_table + +' DROP CONSTRAINT ' + @ma_contrainte EXECUTE sp_executesql @mon_instruction
Bonjour,
En en faisant une requete parametree :
Espérant aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 DECLARE @TblName1 VARCHAR(50),@SQLString VARCHAR(200), @ParamPK VARCHAR(50) SET @TblName1 = 'Products' -- nom court de la table SELECT @ParamPK=CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = @TblName1 print @ParamPK set @SQLString= 'ALTER TABLE NomTonSchema.' + @TblName1 + ' DROP CONSTRAINT ' + @ParamPK print @SQLString EXECUTE(@SQLString)
Edit : Désolé, Erwan, je n'avais pas actualisé avant de poser ma réponse.
Mais abondance de biens ne nuit pas ...
@ micniv & Erwan1978 : Merci pour vos réponse. Ce n'est qu'hier que j'ai pu tester vos solutions.
Merci encore pour la solution
Partager