ホームページ > データベース > mysql チュートリアル > T-SQL ストアド プロシージャでテーブルを動的に作成する方法

T-SQL ストアド プロシージャでテーブルを動的に作成する方法

Mary-Kate Olsen
リリース: 2024-12-28 15:17:11
オリジナル
510 人が閲覧しました

How to Dynamically Create Tables in T-SQL Stored Procedures?

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'
ログイン後にコピー

ただし、ストアド プロシージャ内で動的にテーブルを作成するのは通常、次の理由により推奨されません:

  • 複雑さ: 複雑なテーブル構造の処理は、
  • スケーラビリティ: すべてのテーブルがプライマリ ファイル グループに配置されるため、I/O 競合が発生する可能性があります。
  • 計画: の戦略的な配置パフォーマンスを向上させるには、ファイル グループにテーブルを作成することが重要です。

テーブルを動的に作成される場合は、定義された価格を使用してショップを既存の製品テーブルにマッピングするなど、他のソリューションを検討することを検討してください。

以上がT-SQL ストアド プロシージャでテーブルを動的に作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート