ホームページ >データベース >mysql チュートリアル >T-SQL ストアド プロシージャでテーブルを動的に作成する方法
T-SQL のストアド プロシージャでテーブルを動的に作成する方法
提供されているように、テーブル変数を一時テーブルとして作成するたとえば、は間違っています。一時テーブルを作成するには、次の構文を使用します。
CREATE TABLE #customer ( Name varchar(32) not null )
テーブル変数を宣言するには、次の構文を使用します。
DECLARE @Customer TABLE ( Name varchar(32) not null )
動的 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'
ただし、ストアド プロシージャ内で動的にテーブルを作成するのは通常、次の理由により推奨されません:
テーブルを動的に作成される場合は、定義された価格を使用してショップを既存の製品テーブルにマッピングするなど、他のソリューションを検討することを検討してください。
以上がT-SQL ストアド プロシージャでテーブルを動的に作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。