SQL dynamique : création de tables dans des procédures stockées
Problème :
Création de tables dans des procédures stockées les procédures utilisant une variable de table ne sont pas réalisables, car elles créent une variable de table plutôt qu'une variable temporaire. table.
Solution :
Pour créer des tables de manière dynamique dans des procédures stockées, du SQL dynamique est requis. Dynamic SQL nous permet de construire une instruction SQL sous forme de chaîne et de l'exécuter.
Exemple :
CREATE PROCEDURE sproc_BuildTable @TableName NVARCHAR(128) ,@Column1Name NVARCHAR(32) ,@Column1DataType NVARCHAR(32) ,@Column1Nullable NVARCHAR(32) AS DECLARE @SQLString NVARCHAR(MAX) SET @SQString = 'CREATE TABLE '+@TableName + '( '+@Column1Name+' '+@Column1DataType +' '+@Column1Nullable +') ON PRIMARY ' EXEC (@SQLString) GO
Utilisation :
sproc_BuildTable 'Customers','CustomerName','VARCHAR(32)','NOT NULL'
Considérations :
Créer dynamiquement Les tables dans les procédures stockées présentent plusieurs inconvénients :
Solution alternative :
Pour créer plusieurs tables dans différents magasins, un modèle de relation plusieurs-à-plusieurs peut être utilisé. Un tableau de cartographie relierait les magasins et les produits, permettant de déterminer les prix les moins chers pour des produits spécifiques dans différents magasins.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!