テーブル名を[]でくくらないとエラーになってしまいます
sqlserver 2008 express edition を利用しているのですが
テーブル名 やカラム名に[]でくくってSQL文を実行しないと
エラーが出てしまいます
例えば
select * from [table] の様にしないといけません
これを
select * from table で実行できるようにしたいのです
どうしたらいいのでしょうか
会社ではsqlserver2005を利用しているので
2008からは[]でくくる必要になったのでしょうか
それとも初期設定で何かしないといけないのでしょうか
設定方法を教えて下さい
sqlserver management studio2008もインストール済みです
No.1ベストアンサー
- 回答日時:
「table」はSQLの予約語です。
そのため初期設定などで、「table」をそのままSQL文に使用することは出来ません。これは他のRDBも同様です。SQL SERVERでは[]で括ることで、予約語をオブジェクト名に出来ますが、おすすめは出来ません。
なお、ANSI/ISOの標準規格では「"(ダブルクォーテーション)」で括ることで、同様にエラーを回避できます。SQL SERVERでも初期設定でANSI/ISOと同様に「"」で括るモードにすることは出来ますが、それでも予約語である以上何らかの対応は必要です。
> 会社ではsqlserver2005を利用しているので
> 2008からは[]でくくる必要になったのでしょうか
そんなことはないはずです。
No.3
- 回答日時:
予約後だけではなく、命名規則に反したテーブルも[]でくくれば作成できてしまいます。
当然、命名規則に反するのでselectする際もエラーになりますが、select時にも[]でくくればアクセス可能です。
あと、エラーがでるならエラーコードや内容や、本当に発行しているSQL(再現するもの)を書きましょう。
予約語が原因なのか命名規則に反するのか想定でしか書けません。
select * from tableはサンプルなのでしょうか。それでは予約語と突っ込みが入るのはしかたがありません。
create table 111 (a char(1))
メッセージ 102、レベル 15、状態 1、行 1
'111' 付近に不適切な構文があります。
create table [111] (a char(1))
コマンドは正常に完了しました。
select * from 111
メッセージ 102、レベル 15、状態 1、行 1
'111' 付近に不適切な構文があります。
select * from [111]
(0 行処理されました)
当然、数字のみのオブジェクトは命名規則に反します。
No.2
- 回答日時:
何で予約語をテーブル名にしてるの?
そこが信じられません。
以下のページに、こう書いてあります。
…Transact-SQL スクリプトで、SQL Server の予約済みキーワードを識別子およびオブジェクト名として使用することは構文的に可能ですが、これは識別子を区切って使用するときに限られます。
予約済みキーワード (Transact-SQL)
http://msdn.microsoft.com/ja-jp/library/ms189822 …
| それとも初期設定で何かしないといけないのでしょうか
| 設定方法を教えて下さい
初期設定も何も、予約語を使うなと書いてあるのですから、名前を変更するしか手はないです。
これは2005でも2008でも変わっていません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL 列が存在しないと言われる 2 2023/02/10 18:33
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- PostgreSQL postgreSQL カラムの全ての値を取得したい 3 2022/10/07 12:33
- Oracle SQL update方法 2 2022/06/22 14:07
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
型 varchar から型 numeric への変換エラー。
その他(データベース)
-
SQLのエラー(~付近に不適切な構文があります)
SQL Server
-
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
-
4
項目名の制限について
SQL Server
-
5
'modify' 付近に不適切な構文があります。
SQL Server
-
6
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
7
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
8
ストアドのエラーについて
SQL Server
-
9
SQLServerでNULLを挿入したいです
SQL Server
-
10
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
11
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
12
他のデータベースとのテーブル結合
SQL Server
-
13
コマンドプロンプトのエラーについて
その他(パソコン・周辺機器)
-
14
MS SQLServer のSQLで文字列の前にN:
その他(データベース)
-
15
エクセルでエラーが出て困っています。
Excel(エクセル)
-
16
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
17
SQL文(テーブル項目名が特殊文字)
その他(プログラミング・Web制作)
-
18
SQLServer2005のSQL文での別名の取り扱い
SQL Server
-
19
ASP.NET OleDbConnectionが定義がされていません
Microsoft ASP
-
20
副問合せの書き方について
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
oracle sqlで先頭の1件を取得
-
count(1)とcount(*)の違い
-
SQLのto_char関数の未定義エラー
-
Oracle上のテーブルからCREATE ...
-
CLOB型へのINSERT
-
インラインビューの更新権限に...
-
INDEXの無効化
-
異なるスキーマからデータを抽...
-
データを削除しても表領域の使...
-
ORA-00959: 表領域'****'は...
-
datapumpの実行方法について
-
SQLでスキーマ名(所有者名)の...
-
INSERT時に発番を行いたい
-
[性能改善]AccessのDBに大量の...
-
テーブルからのselectにおいて...
-
Access レコードを追加できませ...
-
特定のスキーマのテーブルを一...
-
RDBのテーブル種類の違い
-
viewのバックアップ
-
同じSELECT文同士でのデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CLOB型へのINSERT
-
count(1)とcount(*)の違い
-
"table device"とは何かについて
-
truncate文で全テーブルを一気...
-
テーブル名を[]でくくらないと...
-
Oracle複数の表をもとにmerge文...
-
Oracle上のテーブルからCREATE ...
-
sqlplusで実行したSQLの結果を...
-
oracleのプライマリ・キー名の変更
-
複数テーブルのUPDATE
-
1つのテーブル・2つの列を結合...
-
主キーが二つのテーブルのselec...
-
oracle sqlで先頭の1件を取得
-
あるデータベースの表を全部消...
-
alter table でチェックボック...
-
Oracle テーブルの列削除
-
グループの数を取得したい
-
SQLのto_char関数の未定義エラー
-
"actuarial table"とは?
-
CASCADE CONSTRAINTSについて
おすすめ情報