質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

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

Q&A

解決済

1回答

6713閲覧

SQLServer エラー 「'GO' 付近に不適切な構文があります。」

eragonasable

総合スコア13

SQL

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

0グッド

0クリップ

投稿2018/03/07 02:20

編集2018/03/07 02:29

現在、SQLServerをA5:SQL Mk 経由で開発を行っており、とあるテーブルに列を追加しようSQLを書いたのですが、
「'GO' 付近に不適切な構文があります。」と出ます。

ALTER TABLE [スキーマ].[テーブル名] ADD [カラム名] [nvarchar](10) GO

開発を始めて、日も浅く、原因が見つからず困っております。
どなたかご教授お願い申し上げます。

列の追加自体はGUI機能を使えば、可能なのですが、数が多く、SQLで一括してやってしまうために書いております。
何か情報が不足していたら、ご指摘お願いします。

※追記
サーバー上のSQLserverManagementeStudio で同じ文を実施すると可能実施できました。

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

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

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

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

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

unz.hori

2018/03/07 02:32

SQLServerには詳しくないんですが、GOってなんですか?
eragonasable

2018/03/07 02:39

私も詳しく理解していないのですが、Transact-SQLにおけるバッチの終了コマンドとあるので、本当はクエリやコマンドをまとめて書いて最後に書くものかなと認識しております。
unz.hori

2018/03/07 02:40

とりあえず、区切り文字として行末に";"を追加してみてください(ダブルクォートは不要)
退会済みユーザー

退会済みユーザー

2018/03/07 05:24 編集

A5:SQL mkIIで開発しているようですが、当のSQL Serverへの接続は直接接続なのか、汎用接続なのか。
eragonasable

2018/03/07 07:07

「区切り文字を;に変更するとキャレットをSQL区切り文字の前において実行してください」と出力されます。
eragonasable

2018/03/07 07:09

>m6uさん 申し訳ないです。汎用接続と直接接続の違いがわからないのですが、どういった違いがあるのでしょうか??
unz.hori

2018/03/07 07:09

ん?カーソルを区切り文字より前例えば行頭とかで実行すると?
eragonasable

2018/03/07 07:19

>unz.horiさん 改行して2行目から書いていましたが、GO無しならば、1行目を詰めて記述したものは実行できました。;は使っていません。
unz.hori

2018/03/07 07:21

実行位置ってどうなってますか?緑の三角アイコンのやつ
eragonasable

2018/03/08 05:12

特に変化はありません。
unz.hori

2018/03/08 05:23

どこに対する回答?私の質問はカーソル位置のを実行とかカーソル以降を実行とか選択できるようになってるけどどうなってるって質問ですが。
eragonasable

2018/03/09 01:24

>unz.horiさん 実行位置はキャレット位置という設定でした。また、その下にあったSQLの区切りの設定が"";"になっていたのが原因だったようです。
guest

回答1

0

自己解決

「SQLの実行・キャレット位置」のオプションにある「SQLの区切り」を"GO"に変更する。
デフォルトはおそらく";"になっている。

投稿2018/03/09 01:26

eragonasable

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問