2009-04-29 8 views
1

私は本当にこの質問にフレーズする最善の方法を考えることができませんので、例を挙げます。私はこのように作成されたテーブルがあるとします。私は物理テーブルへのビューからこれを変更したい場合はSQL Server 2005のビューと同じレイアウトのテーブルを作成する方法はありますか?

CREATE VIEW People 
AS 
    SELECT 
     id, --int 
     name, --varchar(20) 
     birthdate --datetime 
    FROM SomeTable 

、同じレイアウトを持つテーブルを作成する方法はありますか?言い換えれば

は、私はこのような表を、そのビューを取ると、作成したい:

CREATE TABLE People(
    id int, 
    name varchar(20), 
    birtdate datetime 
) 

...しかし、手動でそのクエリを記述することなく。

これはもちろん巧妙な例です。ビューにはさまざまな種類のデータが含まれているため、手動で行うのは難しいでしょう。人々から

答えて

7

どの程度

SELECT * INTO MyNewTable FROM MyView 

そして、あなたは、コンテンツ、ちょうど構造

SELECT * INTO MyNewTable FROM MyView WHERE 1 = 2 
+0

ありがとうございます。私はそれが何か簡単だろうと思った。 –

+1

+1しかし、場合によっては、特にNULLを返す計算フィールドを使用する場合、SQLは期待したフィールドの型を選択しないことに注意してください。この場合、フィールドを明示的に変換して問題を回避することができます。 – Yishai

1

選択* INTO PeopleTable

+1

間違った構文をしたくない場合。 INTOはFROMより前でなければなりません。 – mwigdahl

+0

はすでに修正済みです –

2
SELECT * 
INTO People_Table 
FROM People_View