Rumah >pangkalan data >tutorial mysql >Bagaimanakah SQL Dinamik Menyelesaikan Masalah Mencipta Jadual Dalam Prosedur Tersimpan?
SQL Dinamik: Mencipta Jadual dalam Prosedur Tersimpan
Masalah:
Mencipta jadual dalam simpanan prosedur menggunakan pembolehubah jadual tidak boleh dilaksanakan, kerana ia mewujudkan pembolehubah jadual dan bukannya sementara jadual.
Penyelesaian:
Untuk mencipta jadual secara dinamik dalam prosedur tersimpan, SQL dinamik diperlukan. SQL Dinamik membolehkan kami membina pernyataan SQL sebagai rentetan dan melaksanakan ia.
Contoh:
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
Penggunaan:
sproc_BuildTable 'Customers','CustomerName','VARCHAR(32)','NOT NULL'
Pertimbangan:
Mencipta jadual secara dinamik dalam prosedur tersimpan mempunyai beberapa kelemahan:
Penyelesaian Alternatif:
Untuk mencipta berbilang jadual di kedai yang berbeza, model perhubungan banyak-ke-banyak boleh digunakan. Jadual pemetaan akan memautkan kedai dan produk, membolehkan penentuan harga termurah untuk produk tertentu merentas kedai yang berbeza.
Atas ialah kandungan terperinci Bagaimanakah SQL Dinamik Menyelesaikan Masalah Mencipta Jadual Dalam Prosedur Tersimpan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!