
テーブル名を[]でくくらないとエラーになってしまいます
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
SQLのエラー(~付近に不適切な構文があります)
SQL Server
-
GROUP BYを行った後に結合したい。
Oracle
-
'modify' 付近に不適切な構文があります。
SQL Server
-
-
4
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
5
項目名の制限について
SQL Server
-
6
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
7
テーブルのレコード削除ができません
SQL Server
-
8
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
9
select insertで複数テーブルから値を取得したい
Oracle
-
10
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
11
ADO VBA 実行時エラー3021
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CLOB型へのINSERT
-
テーブル名を[]でくくらないと...
-
oracleのプライマリ・キー名の変更
-
Oracle複数の表をもとにmerge文...
-
alter table でチェックボック...
-
sqlplusで実行したSQLの結果を...
-
データを削除しても表領域の使...
-
Viewにインデックスは張れ...
-
DELETE文でFROM句を省略した場合
-
ACCESS 複数テーブル・複数フィ...
-
Data Pump で大量データインポ...
-
ORA-00959: 表領域'****'は...
-
postgreSQLのint型は桁数指定が...
-
大量データの取得処理について
-
datapumpの実行方法について
-
異なるスキーマからデータを抽...
-
列が255以上のCSVファイルをAcc...
-
ACCESS テーブルに2行目から取...
-
特定のスキーマのテーブルを一...
-
アナライズとインデックス作成...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CLOB型へのINSERT
-
テーブル名を[]でくくらないと...
-
oracleのプライマリ・キー名の変更
-
Oracle複数の表をもとにmerge文...
-
truncate文で全テーブルを一気...
-
1つのテーブル・2つの列を結合...
-
ある英語の問題のコト
-
グループの数を取得したい
-
主キーが二つのテーブルのselec...
-
レコードのコピーについて
-
複数テーブルのUPDATE
-
PostgreSQLでテーブルの項目の操作
-
updateで
-
Oracle上のテーブルからCREATE ...
-
create table as select
-
count(1)とcount(*)の違い
-
alter table でチェックボック...
-
Oracle テーブルの列削除
-
マンションのベランダでお酒の...
-
SQLのto_char関数の未定義エラー
おすすめ情報