
テーブル名を[]でくくらないとエラーになってしまいます
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も見ています
-
SQLのエラー(~付近に不適切な構文があります)
SQL Server
-
'modify' 付近に不適切な構文があります。
SQL Server
-
GROUP BYを行った後に結合したい。
Oracle
-
-
4
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
5
項目名の制限について
SQL Server
-
6
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
7
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
8
テーブルのレコード削除ができません
SQL Server
-
9
Page_Load時にボタンクリックイベントを実行するには?
Microsoft ASP
-
10
select insertで複数テーブルから値を取得したい
Oracle
-
11
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
12
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
13
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
14
Visual Studio 「AnyCpu」について
C言語・C++・C#
-
15
ADO VBA 実行時エラー3021
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
ACCESS2007 フォーム 「バリア...
-
【VB.NET】日付型の列にNULLを...
-
sqlserverで集計結果をUPDATEし...
-
【SQLサーバ】float型における...
-
SQLサーバー接続 特定のPCがWin...
-
BULK INSERT時のNull許容について
-
SQL ExpressエディションのCPU...
-
SQLをはじめから勉強するには
-
Visuaal Studio Community 2022...
-
SQLCMDにて教えていただきたい...
-
SQL文 複数実行
-
<SQL>重複しているデータの場合...
-
Microsoft SQL Serverについて
-
Wacom Cintiq 16 と Wacom Cint...
-
SQL クエリ データ数
-
SQL Server management studio ...
-
Tverは無料でしょうか?
-
サーバー破壊
-
Access2021 「ISNULL関数には引...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
ACCESS2007 フォーム 「バリア...
-
sqlserverで集計結果をUPDATEし...
-
【VB.NET】日付型の列にNULLを...
-
SQLサーバー接続 特定のPCがWin...
-
Accessの重複なしのカウントの...
-
SQL Date型の列から年月だけを...
-
sqlで、600行あるテーブルを100...
-
SQLサーバで和暦から西暦に変換...
-
BULK INSERT時のNull許容について
-
SQL文 複数実行
-
SQLCMDにて教えていただきたい...
-
【SQLサーバ】float型における...
-
<SQL>重複しているデータの場合...
-
chr(13) と char(13) の違いっ...
-
Visuaal Studio Community 2022...
-
[SQLServer] テーブル名からカ...
-
sqlserverで対象のレコードを削...
-
AccessのInsertクエリのあとつ...
-
sqlserverで同一キー単位で金額...
おすすめ情報