SQL Server データベースにテーブルを作成するときに、どちらを使用するかの違いがよくわかりません。テーブルを作成するとき、一方が他方よりも安全または高速ですか?
2 に答える
SMO ステートメントと DDL ステートメントは、重複する場合もありますが、異なる目的で使用されます。
データベース スキーマをプログラムで制御する場合は、SMO を使用します。1 つの例は、「動的」列の追加です。これは、システムが実行時にデータベース列を追加し、それらをビジネス レイヤーや GUI にマッピングすることをサポートしていることを意味します。もう 1 つの例は、インデックスのセグメンテーションを制御し、状況が悪化したときに警告を発することです。
アプリのインストール用のセットアップ スクリプトを作成する場合は、TSQL DDL を使用します。はるかに簡単で簡単です。
編集
SMO を使用すると、オブジェクト モデルと API を取得できます。すべての列を 1 つずつ通過する必要があると想像してください。SMO を使用すると、必要なメタデータを指定してロードし、列のコレクションをループします。ADO.NET では、INFORMATION_SCHEMA とシステム テーブルに対してクエリを実行してスキーマを取得します (外部キーに関するすべての情報を取得して、そのコードを調べます)。
テーブルを作成したり、テーブルに列を追加したりする場合、それほど違いはないかもしれませんが、実際にはまったく違いがないかもしれません。しかし、複数のテーブルとキーを管理する場合は、別の話になります。