ホームページ >データベース >mysql チュートリアル >動的 SQL はストアド プロシージャ内でテーブルを作成する問題をどのように解決できるでしょうか?
動的 SQL: ストアド プロシージャ内でのテーブルの作成
問題:
ストアド プロシージャ内でのテーブルの作成テーブル変数を使用するプロシージャは、一時変数ではなくテーブル変数を作成するため、実行できません。 table.
解決策:
ストアド プロシージャでテーブルを動的に作成するには、動的 SQL が必要です。動的 SQL を使用すると、SQL ステートメントを文字列として構築して実行できます。
例:
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
使用法:
sproc_BuildTable 'Customers','CustomerName','VARCHAR(32)','NOT NULL'
考慮事項:
ストアド プロシージャでテーブルを動的に作成するには、いくつかの手順があります。欠点:
代替解決策:
異なるショップに複数のテーブルを作成するには、多対多の関係モデルを使用できます。マッピング テーブルはショップと製品をリンクし、異なるショップ間で特定の製品の最安値を決定できるようにします。
以上が動的 SQL はストアド プロシージャ内でテーブルを作成する問題をどのように解決できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。