現在のコマンドで重大なエラーが発生しました。結果は破棄しなければなりません。
Azureの仮想マシンのWindows10にSQLServer2014をセットアップして、特定のテーブルを作ろうとするとエラーが起きる。仮想マシンではない「生」PCだとエラーは起きない。なんとも不思議。
表示されるエラーメッセージは下記の通り。
何が問題なのかさっぱりわからないので、エラーが起きている個所を調べていくと、下記のSQLを実行すると起きていた。
さらに厄介なのは、エラーは出るのだけどテーブルは作られていて、しかし、そのテーブルにアクセスするとエラーになる。
selectもinsertもできないので、テーブルにデータを保存することも参照することもできない。
*
いろいろ試してみると、
不思議なのは、同じSQLを生PCで実行するとエラーは起きず、仮想マシンで実行するとエラーになるという点。しかも、似たようなSQLを他にもいくつか実行しているのにエラーになるのはこのSQLだけで、やはりテーブル名に原因あり?
ということで、原因はわからないが、以下のように書き換えるとエラーは出なくなった。
そして、もともとキーの名前など指定する必要はないのだから、最初からこう書くべきであった。多分、元のSQLはSQLServerManagementStudioのスクリプトをそのままコピーしたのだろうと思う。
表示されるエラーメッセージは下記の通り。
何が問題なのかさっぱりわからないので、エラーが起きている個所を調べていくと、下記のSQLを実行すると起きていた。
create table [mm70_経年結果一覧設定追加表示項目_腎] ( [団体番号] int NOT NULL , [項目種別] int NOT NULL , [データ種別] int NOT NULL DEFAULT 1 , CONSTRAINT [PK_mm70_経年結果一覧設定追加表示項目_腎] PRIMARY KEY ( [団体番号], [項目種別] ) );
さらに厄介なのは、エラーは出るのだけどテーブルは作られていて、しかし、そのテーブルにアクセスするとエラーになる。
selectもinsertもできないので、テーブルにデータを保存することも参照することもできない。
*
いろいろ試してみると、
- PRIMARY KEYを指定する行を消すとエラーは起きなかった。
- テーブル名を「いろはにほへとちりぬるをわかよたれそつねならむ」に変えるとエラーは起きなかった。
不思議なのは、同じSQLを生PCで実行するとエラーは起きず、仮想マシンで実行するとエラーになるという点。しかも、似たようなSQLを他にもいくつか実行しているのにエラーになるのはこのSQLだけで、やはりテーブル名に原因あり?
ということで、原因はわからないが、以下のように書き換えるとエラーは出なくなった。
create table [mm70_経年結果一覧設定追加表示項目_腎] ( [団体番号] int NOT NULL , [項目種別] int NOT NULL , [データ種別] int NOT NULL DEFAULT 1 , PRIMARY KEY ( 団体番号,項目種別 ) );
そして、もともとキーの名前など指定する必要はないのだから、最初からこう書くべきであった。多分、元のSQLはSQLServerManagementStudioのスクリプトをそのままコピーしたのだろうと思う。
コメント
コメントを投稿