2012-04-03 13 views
0

私はクエリウィンドウでテーブル作成スクリプトを書いて実行していると言います。テーブルが作成されました。今、このスクリプトファイルはどこに生成されていますか(システムテーブル)。私は生成されるテーブル/ビュースクリプトはどこにありますか?

select * from sys.syscomments 

をすれば、私は「テキスト」欄にストアド・プロシージャまたは関数のスクリプトを取得します意味します。同じようにテーブルやビューを取得する方法は?

どれDMVなど...

おかげで、事前

+3

uh .. 'create table'スクリプトはテーブルを作成しますが、それは自分自身を保存しません。 – Aprillion

答えて

0

に私は、スクリプトが格納されている場所がわからないんだけど、あなたは、テーブルを作成するために、スクリプト言語を表示できるように探しているなら、SQL2008 R2(と私はかなりSQL2008だと思う)SSMSは、その場でスクリプトを生成することができます。テーブル(またはビュー、SPなど)を選択し、右クリックします。コンテキストメニューから、[スクリプトテーブルを作成する](またはリストから選択したその他の変更)を選択します。次に、出力場所を選択することができます。新しいクエリエディタウィンドウはおそらく結果を見るのが最も簡単です。そこから、そのテーブルの作成のための基本言語があり、そこから変更または保存することができます。クエリ以下

0

でもあるテーブルのスクリプトを取得するためのビュー

select * from sys.syscomments 

のために働く、あなたは

Right Click on database >> tasks >> Generate Scripts >> choose objects (select tables) 

に私はそれがテーブル・スクリプトを得るための可能な方法であると考えています。テーブル自体が定義であるため、テーブルが保存された定義を必要としないので、私はテーブルの等価があるとは思わない

SELECT * 
FROM INFORMATION_SCHEMA.VIEWS 

:あなたが列VIEW_DEFINITIONを使用することができますビューの場合

0

。あなたがテーブル構造をコピーする必要がある場合、最善の方法は、使用することが考えられます:

SELECT * 
INTO  NewTable 
FROM  OldTable 
WHERE 0 = 1 

あなたはシステム・ビューを使用して独自のスクリプトを生成して、動的SQLを作成してみてください可能性があり、thisのようなものは、あなたが

を始めるだろうこれは制約を作りませんし、私が逃したことがあるかもしれないし、壊すかもしれませんが、一般的な要点があります。 In this Answerという非常にうまく説明されているように、これをSQLの外部で行うこともできます。

HOWEVER私はこれらのメソッドの使用を許してはいけません。この方法でテーブル構造をプログラム的にコピーする必要があると思うシナリオはほとんどありません。構造体をコピーする必要がある場合は、SSMSに組み込まれているスクリプト生成関数を使用して構造体をコピーする方がよいでしょう。

関連する問題