Date: Wed, 27 Jul 2005 16:33:12 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、こんにちは
-----Original Message-----
From: H.Kinoshita [mailto:who@sub.example.com]
Sent: Wednesday, July 27, 2005 1:35 PM
To: who@example.ne.jp
Subject: [ml-msde-beg:01570] テーブル構造の転送について
>従いましてMSDEデータベースから、テーブル構造(スキーマ情報)のみで
>データが空のものをファイル化し、これを自社へ持ち帰って
>自社に同じ構造のデータベースを作成したいと考えているのですが、
>この様な場合に適したコマンド等ありますでしょうか。
スキーマー情報を書き出すコマンドはありません。
強いて言えば、Enterprise Managerの
「SQLスクリプト生成」
機能を使ってください。
これは、データベースから様々な情報を取得し(SQL文やストアドの実行)、
Enterprise Manager自身で、スクリプトに組み立てております。
Enterprise Managerがインストールされていなければ(SQLServerの
ライセンスが必要です)、SQL文の形式で得るのは、難しいでしょう。
別のデータベースを作成し、
データのインポートとエクスポート(DTSウィザード)
で、テーブル構造だけの転送ができます。
ただこのウィザードも、MSDE2000 Release-Aには付属しません。
Access2000やAccess2002に付属するMSDEをインストールしたときは、
このウィザードは、入っていたと思います。
再配布可能なMSDEのパッケージは、コマンドが削られています。
不完全な状態でのテーブル構造でよければ
SELECT * INTO DBName.UserName.New_TableName FROM Org_Table
WHERE( 'A' <> 'A' )
を実行すれば、指定されたデータベース内に、New_TableNameテーブルが
作成されます。
列の名前やデータ型はすべて元のテーブルと同じです。
WHERE句の中は、わざとFALSEとなる条件式を書いてください。
レコードデータの転送を阻止するためです。
ただSELECT INTOの欠点は、作成された新しいテーブルの、インデックス情報等
などは、一切作成されません。
あくまでも、列名とデータ型を元のテーブルと一致させて、レコードを転送する命令
だからです。
SELECT INTOでテーブルを作成したら、
書籍下巻431ページ
http://www.horikawa.ne.jp/msde/gihyo/sql22/sql22_01.html
で紹介した制約を設定するプログラムを使って、制約を後から付けることが可能で
す。
このプログラムの使い方は、書籍を見てください
------------------------------------
(株)日本技術ソフト開発
堀川 明 (Akira Horikawa)
07月27日(水曜日) 16時31分記
mailto:who@example.ne.jp
http://www.horikawa.ne.jp/msde/
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|