Créer une procedure stockée - SQL/NoSQL - Programmation
Marsh Posté le 04-04-2006 à 17:01:24
Salut,
tu ne peux pas passer un nom de table en variable.
Tu peux faire comme ça à la limite :
Code :
|
L'idéal étant de tester le nom de la table avant sa création pour voir si elle n'existe pas déja et ne pas avoir d'erreur...
Marsh Posté le 07-04-2006 à 11:49:54
Ou tu fais une proc qui génère la proc de création ; question bête : pourquoi des procs plutot que des scripts ?
Marsh Posté le 04-04-2006 à 08:57:04
Bonjour ,
Je voudrai créer une procédure stockée qui crée une table dont le nom de la dite table est un paramètre mais je n'y parviens pas.Pourriez-vous m'aider
Voici comment j'ai fais mais sans succès : en lançant dans Query Analyzer de cette façon :
EXEC PROCREATE 'table01' j'ai toujours un message d'erreur disant que l'objet @param est déjà dans la table.
CREATE PROCEDURE [dbo].[PROCREATE] @param char(15) AS
CREATE TABLE [dbo].[@param] (
[CODMAG] [nvarchar] (10) COLLATE French_CI_AS NULL ,
[CODART] [nvarchar] (20) COLLATE French_CI_AS NOT NULL ,
[LIBELLE] [nvarchar] (50) COLLATE French_CI_AS NULL ,
[libeltech] [nvarchar] (50) COLLATE French_CI_AS NULL ,
[groupe] [nvarchar] (10) COLLATE French_CI_AS NULL ,
[UNITE] [nvarchar] (5) COLLATE French_CI_AS NULL ,
[QUANTITE] [real] NULL ,
[SEUILmag] [real] NULL ,
[PRIX_VENTE] [real] NULL ,
[PRIX_DOLLAR] [real] NULL ,
[prix_unitaire_dollar] [real] NULL ,
[pa_fc] [real] NULL ,
[LMH] [real] NULL ,
[LMB] [real] NULL ,
[encours] [real] NULL ,
[code loca] [nvarchar] (10) COLLATE French_CI_AS NULL ,
[shelf] [nvarchar] (30) COLLATE French_CI_AS NULL ,
[aprix_unitaire_dollar] [real] NULL ,
[compte charge] [nvarchar] (10) COLLATE French_CI_AS NULL ,
[image] [image] NULL ,
[code arturi] [nvarchar] (10) COLLATE French_CI_AS NULL ,
[NAME3] [nvarchar] (50) COLLATE French_CI_AS NULL ,
[code pe1] [nvarchar] (10) COLLATE French_CI_AS NULL ,
[NAME4] [nvarchar] (50) COLLATE French_CI_AS NULL ,
[code pe2] [nvarchar] (10) COLLATE French_CI_AS NULL ,
[name5] [nvarchar] (50) COLLATE French_CI_AS NULL ,
[priorite] [nvarchar] (1) COLLATE French_CI_AS NULL ,
[group3] [nvarchar] (10) COLLATE French_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
---------------
Je me forme moi même par mes lectures