ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

SQL Server、テーブルの存在チェック

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-2-18 10:28 | 最終変更
nkmt  長老   投稿数: 1668
結局、Maigcオプティマイザーで仕様書出力した
テーブルリストをテキストエディタでもじって
ALTER SCHEMA dbo TRANSFER HOGEHOGEschema.MST商品;
ALTER SCHEMA dbo TRANSFER HOGEHOGEschema.MSTxxx;
ALTER SCHEMA dbo TRANSFER HOGEHOGEschema.MSTxyz;
ALTER SCHEMA dbo TRANSFER HOGEHOGEschema.DATAabc;
といった文書を作って、これをクエリー保存して
実行するようにしました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-2-18 10:07 | 最終変更
nkmt  長老   投稿数: 1668
Tandaさん、puさん、おはようございます。
レスありがとうございました。

SQL Management Studioで
ALTER SCHEMA dbo TRANSFER HOGEHOGEuser.MST商品;
というクエリーを実行するとスキーマがdboに変更され、
客先バックアップをMagicから読めました。

今回は客先のバックアップをマイPCに復元出来て
Magicからデータを読み書き出来ればそれでいいです。

そのデータベースの中にテーブルが100本あるとして
全てのテーブルのスキーマを1コマンドで変更する
ような事は可能でしょうか?
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-2-17 12:36
pu_mahalo  長老 居住地: 大阪  投稿数: 775
こんにちは Puです

SQLserverには2つのセキュリティがあります。
まず インスタンスにログインする為のユーザーと権限
その後 データベースにアクセスできるユーザーと権限です。

通常sa は初期値で各データベースのdboユーザーとマッピング
されています。

ですので ログインユーザーを新たに作成し dbo以外のスキーマーユーザーにマッピングしてやれば良いかと思いますが

間違ってたらすみません
でわ〜でわ〜
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-2-17 0:52
Tanda  長老   投稿数: 2151
nkmtさん

StandardとExpressはバージョンがマイナーバージョンまで一致して
いますか?

インターネットで検索すると、マイナーバージョンの不一致で復元
できないという事例が出てるみたいです。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014-2-16 21:46
nkmt  長老   投稿数: 1668
客先のSQL Server 2012 Standardのスキーマがdboではないデータバックアップを、マイノートPCの2012Expressに復元しました。

Management Studioではデータの中身も見えるのですが、Magic uniPaaS V1 PlusからAPGで見ようとすると、ログインに失敗しました。となります。

客先はSQL Server認証で、マイノートのEXPRESSもSQL Server認証です。

スキーマがdbo以外ってのは今回が初めてで、客先データをMagicから見られないってのも今回が初めてです。どうすればMagicから見られるようになるのでしょうか・・・。

(まだ勉強出来ておりません。)
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-2-6 11:00 | 最終変更
nkmt  長老   投稿数: 1668
Takeさん、Tandaさん レスありがとうございました。
スキーマというのもよく意味がわかりませんでした。

今回は、SQL Server 2012 EXPRESSで作成したデータベースのバックアップを、SQL Server 2012 Standardへ復元しようとしていました。
その環境でうまくいっていませんでした。

復元するのは止めて、
SQL Server 2012 Standard でHogehogeDBを作成。
SQL Server認証のHogehogeuserを作成。
HogehogeDBに、Hogehogeスキーマを作成し、所有者を
Hogehogeuser にしました。
今回もなんとなくうまくいった(いきそうだ)という中途半端なスキルです。

この環境のまま、他のDBのバックアップを復元するのは止めときます。

復元先も復元元もEXPRESSの時は、意外とすんなり行く事があります。
よく理解せずに進めているといつか痛い目に合いそうで怖いです。

※追記
データベースにスキーマを追加登録するというのは、初めての経験でした。
あまりにも無知過ぎるのかもしれません。

※追記
いいのがあったので勉強したいと思います。
http://www.microsoft.com/ja-jp/sqlserver/2012/technology/self-learning.aspx
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-2-6 10:06
Tanda  長老   投稿数: 2151
nkmtさん、

データソースの特性に、「DBカラム名」という欄があります。
そこの設定が、SQLServer側にすでに存在するテーブルの名前
と重複しているということはありませんか?
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-2-6 9:19
Take  一人前   投稿数: 124
スキーマの問題のような気がします。
認証ユーザーがsa以外の場合はデフォルトスキーマをユーザーに定義して、そのスキーマを作成する必要があったような...
はずしてたらスイマセン
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 .5 .6 .7 | 投稿日時 2014-2-5 21:08
nkmt  長老   投稿数: 1668
データベース特性 → SQLサーバー → テーブルの存在チェックをする、にすると
データベースに 得意先マスタ という名前のオブジェクトが既に存在します。
新規登録できません.:得意先マスタ
といったエラーになります。

テーブルの存在チェックをしない!にすると、そのエラーが出ません。

SQL Server認証でやっているつもりです。
何がいけないんでしょうか。

テーブルの存在チェックはする!でいきたいと考えております。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約