Bonjour,
Je veux pouvoir créer une séquence dynamiquement dans une procédure stockée en sql server 2012. Mon problème c'est que le nom de la séquence est égale au nom d'une colonne.
Ci-dessous la requête que j'utilise et le message d'erreur reçu dès exécution d'une insertion.
Procédure stockée
J'ai fait cet trigger et lorsque je fais une insertion:
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 CREATE TRIGGER [dbo].[Numero] ON [dbo].[Table1] AFTER INSERT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for trigger here DECLARE @NomColonne1Table1 varchar(60), @VarSequence Varchar(100) SET @NomColonne1Table1 = (SELECT I.Nom FROM inserted I ) SET @VarSequence = 'CREATE SEQUENCE [dbo].[' + @NomColonne1Table1 + '] START WITH 0 INCREMENT BY 1 NO CACHE' EXECUTE @varSequence END
je reçois ce message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO [dbo].[Table1] (Nom) Values ('Toece')
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Msg*203, Niveau*16, État*2, Procédure*Numero, Ligne*23 Le nom 'CREATE SEQUENCE [dbo].[Toece] START WITH 0 INCREMENT BY 1 NO CACHE' n'est pas un identificateur valide.
Comment procéder?
Partager