🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

3回答

40396閲覧

SQLで列名が無効と表示される

layla

総合スコア14

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

1クリップ

投稿2020/01/18 03:10

編集2020/01/18 04:36

SQL超初心者の者です。

sqlcmdにおいて以下のコードでデータベースを登録し、

SQL

1 CREATE TABLE tbl_exam ( 2 id INT PRIMARY KEY, 3 name VARCHAR(20), 4 score_kokugo INT, 5 score_eigo INT); 6 INSERT INTO tbl_exam (id, name, score_kokugo, score_eigo) 7 VALUES (1, '相澤', 100, 98); 8 INSERT INTO tbl_exam (id, name, score_kokugo, score_eigo) 9 VALUES (2, '山本', 75, 80); 10INSERT INTO tbl_exam (id, name, score_kokugo, score_eigo) 11 VALUES (3, '澤口', 70, 93); 12INSERT INTO tbl_exam (id, name, score_kokugo, score_eigo) 13 VALUES (4, '小林', 54, 65); 14 GO

さらに、以下のコードで演算を行おうとした結果、

SQL

1 USE db_ehon; 2 SELECT name, (score_kokugo + score_eigo) AS sum FROM tbl_exam; 3 GO

メッセージ 207、レベル 16、状態 1、サーバー DESKTOP-78OAFQL\SQLEXPRESS、行 2
列名 'score_kokugo' が無効です。
メッセージ 207、レベル 16、状態 1、サーバー DESKTOP-78OAFQL\SQLEXPRESS、行 2
列名 'score_eigo' が無効です。

というエラーが出て実行できません。

どなたか実行できるようにする方法を教えていただけないでしょうか。
よろしくお願い致します。

追記
すみません。バージョン・エディションはSQL Server2017 Expressです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/18 03:40

SQL Server ですよね? 質問欄を編集してバージョン・エディションを書いてください。
m.ts10806

2020/01/18 03:42

列名指定なしでselectはできるのでしょうか
m.ts10806

2020/01/18 03:46

各SQL提供はありがたいですが、行番号など入っていてはコピペで確認ができませんので、 純粋にコードだけ提示していただけると助かります
退会済みユーザー

退会済みユーザー

2020/01/18 03:49

Sql Server Management Studio (SSMS) はインストールしてあって使えるようになっていますか? sqlcmd の勉強をしているということでなくて、クエリの書き方を勉強しているということなら SSMS を使ってやってみることをお勧めします。
layla

2020/01/18 04:59

皆様、ご回答ありがとうございました。databaseを一度削除し、作成しなおすことで解決しました。
guest

回答3

0

SUMはSQL Server 2017 予約語 だから別の名前にしては?

投稿2020/01/18 04:49

Orlofsky

総合スコア16417

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

sql server メッセージ 207 列名 が無効です ・・・などをキーワードにググると参考になる記事がヒットするはずです。例えば下記:

MSSQLSERVER_207
https://docs.microsoft.com/ja-jp/sql/relational-databases/errors-events/mssqlserver-207-database-engine-error?view=sql-server-ver15

いくつか原因が書かれていますが、一番怪しいのはその中の "列名にスペルミスがあるか、指定されたテーブルにその列が存在しません" だと思いますので調べてください。

上の回答欄のコメントで SSMS を使うことをお勧めしましたが、使ってみることをお勧めします。以下の画像のようなことができます。

テーブルの全列を 1,000 行取得してみる。

イメージ説明

上のクエリを[新しいクエリ]にコピペして編集して[実行]してみる。

イメージ説明

投稿2020/01/18 04:12

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

layla

2020/01/18 04:54

非常にご丁寧なご回答誠にありがとうございました。 データベースをdrop databaseで一度削除し、もう一度databaseを作成しなおし、上記のコードを再度実行するとできました。
guest

0

データベースをdrop databaseで一度削除し、もう一度databaseを作成しなおし、上記のコードを再度実行するとできました。

投稿2020/01/18 04:55

layla

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2020/01/18 05:22

再インストールで正常に動作するようになったというのは非常に不安定なデータベースでは?って信頼性に疑問が残ります。 可能であれば別バージョンで動作させる、とかも考えては?予約語の使用制限は必ず守ってください。バージョンアップするとチェックが厳しくなってエラーになったり将来に禍根を残します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問