SQL Server、テーブルの存在チェック
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
nkmt
投稿数: 1668

データベース特性 → SQLサーバー → テーブルの存在チェックをする、にすると
データベースに 得意先マスタ という名前のオブジェクトが既に存在します。
新規登録できません.:得意先マスタ
といったエラーになります。
テーブルの存在チェックをしない!にすると、そのエラーが出ません。
SQL Server認証でやっているつもりです。
何がいけないんでしょうか。
テーブルの存在チェックはする!でいきたいと考えております。
データベースに 得意先マスタ という名前のオブジェクトが既に存在します。
新規登録できません.:得意先マスタ
といったエラーになります。
テーブルの存在チェックをしない!にすると、そのエラーが出ません。
SQL Server認証でやっているつもりです。
何がいけないんでしょうか。
テーブルの存在チェックはする!でいきたいと考えております。
投票数:0
平均点:0.00
Take
投稿数: 124

スキーマの問題のような気がします。
認証ユーザーがsa以外の場合はデフォルトスキーマをユーザーに定義して、そのスキーマを作成する必要があったような...
はずしてたらスイマセン
認証ユーザーがsa以外の場合はデフォルトスキーマをユーザーに定義して、そのスキーマを作成する必要があったような...
はずしてたらスイマセン
投票数:0
平均点:0.00
Tanda
投稿数: 2151

nkmtさん、
データソースの特性に、「DBカラム名」という欄があります。
そこの設定が、SQLServer側にすでに存在するテーブルの名前
と重複しているということはありませんか?
データソースの特性に、「DBカラム名」という欄があります。
そこの設定が、SQLServer側にすでに存在するテーブルの名前
と重複しているということはありませんか?
投票数:0
平均点:0.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
スキーマというのもよく意味がわかりませんでした。
今回は、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
nkmt
投稿数: 1668

客先のSQL Server 2012 Standardのスキーマがdboではないデータバックアップを、マイノートPCの2012Expressに復元しました。
Management Studioではデータの中身も見えるのですが、Magic uniPaaS V1 PlusからAPGで見ようとすると、ログインに失敗しました。となります。
客先はSQL Server認証で、マイノートのEXPRESSもSQL Server認証です。
スキーマがdbo以外ってのは今回が初めてで、客先データをMagicから見られないってのも今回が初めてです。どうすればMagicから見られるようになるのでしょうか・・・。
(まだ勉強出来ておりません。)
Management Studioではデータの中身も見えるのですが、Magic uniPaaS V1 PlusからAPGで見ようとすると、ログインに失敗しました。となります。
客先はSQL Server認証で、マイノートのEXPRESSもSQL Server認証です。
スキーマがdbo以外ってのは今回が初めてで、客先データをMagicから見られないってのも今回が初めてです。どうすればMagicから見られるようになるのでしょうか・・・。
(まだ勉強出来ておりません。)
投票数:0
平均点:0.00
Tanda
投稿数: 2151

nkmtさん
StandardとExpressはバージョンがマイナーバージョンまで一致して
いますか?
インターネットで検索すると、マイナーバージョンの不一致で復元
できないという事例が出てるみたいです。
StandardとExpressはバージョンがマイナーバージョンまで一致して
いますか?
インターネットで検索すると、マイナーバージョンの不一致で復元
できないという事例が出てるみたいです。
投票数:0
平均点:0.00
pu_mahalo
居住地: 大阪
投稿数: 775

こんにちは Puです
SQLserverには2つのセキュリティがあります。
まず インスタンスにログインする為のユーザーと権限
その後 データベースにアクセスできるユーザーと権限です。
通常sa は初期値で各データベースのdboユーザーとマッピング
されています。
ですので ログインユーザーを新たに作成し dbo以外のスキーマーユーザーにマッピングしてやれば良いかと思いますが
間違ってたらすみません
でわ〜でわ〜
SQLserverには2つのセキュリティがあります。
まず インスタンスにログインする為のユーザーと権限
その後 データベースにアクセスできるユーザーと権限です。
通常sa は初期値で各データベースのdboユーザーとマッピング
されています。
ですので ログインユーザーを新たに作成し dbo以外のスキーマーユーザーにマッピングしてやれば良いかと思いますが
間違ってたらすみません
でわ〜でわ〜
投票数:0
平均点:0.00
nkmt
投稿数: 1668

Tandaさん、puさん、おはようございます。
レスありがとうございました。
SQL Management Studioで
ALTER SCHEMA dbo TRANSFER HOGEHOGEuser.MST商品;
というクエリーを実行するとスキーマがdboに変更され、
客先バックアップをMagicから読めました。
今回は客先のバックアップをマイPCに復元出来て
Magicからデータを読み書き出来ればそれでいいです。
そのデータベースの中にテーブルが100本あるとして
全てのテーブルのスキーマを1コマンドで変更する
ような事は可能でしょうか?
レスありがとうございました。
SQL Management Studioで
ALTER SCHEMA dbo TRANSFER HOGEHOGEuser.MST商品;
というクエリーを実行するとスキーマがdboに変更され、
客先バックアップをMagicから読めました。
今回は客先のバックアップをマイPCに復元出来て
Magicからデータを読み書き出来ればそれでいいです。
そのデータベースの中にテーブルが100本あるとして
全てのテーブルのスキーマを1コマンドで変更する
ような事は可能でしょうか?
投票数:0
平均点:0.00
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;
といった文書を作って、これをクエリー保存して
実行するようにしました。
テーブルリストをテキストエディタでもじって
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