• 締切済み

SQLserver2008でのSQL発行時ののオブジェクトエラーについ

SQLserver2008でのSQL発行時ののオブジェクトエラーについて 「sa」ユーザーでDB作成後テーブルも複数作成。そのあとにこのSQLを「SELECT * FROM (テーブル名)」で発行すると、赤線が出てきてオブジェクト(テーブル名)が無効です。」とのエラーメッセージが出てきます。けれども結果は正しく表示されます。 何がいけないのでしょうか? 「DB名」.「dbo」.「テーブル名」でも同じです・・・ スキーマ関係があまり詳しくないので是非教えてください。

みんなの回答

回答No.1

下記のSQL文を参照する。 use データベース名; select * from テーブル名; select * from [dbo].テーブル名;

参考URL:
http://www.werunsoft.com/tips.aspx?db=sqlserver&id=81
sugizo0419
質問者

補足

原因はintellisense機能だったんですが、なぜかお分かりですか??ONだとエラーが出てオフだとエラーがでません・・・

関連するQ&A

  • SQLでスキーマ名(所有者名)の修飾無しでテーブル参照したい

    select * from [テーブル名] で問い合わせをしたいんですが、 select * from [スキーマ名].[テーブル名] でなければエラーになってしまいます。 (「オブジェクト名 'テーブル名' は無効です。」といった、テーブルが無い旨のエラーが出ます。) 所有者(スキーマ名?)をdboに変更してするとテーブル名だけで参照できます。 例えば、テーブルの所有者を'test_user'に変更した場合、 test_userでログインしているにもかかわらず(クエリアナライザ)、修飾が無いと参照できません。 'test_user'はsystem administratorsロールに入れてあります。 SQLServerをインストールし直して DBを一から構築してもそうなります。 何か施さないといけないことがあるのでしょうか。 思い当たることがございましたら、ご教示頂ければと思います。 環境は SQL Server 2000 です。

  • SQLServerで別インスタンスのデータベースのテーブルの結合はできますか?

    [インスタンスA] UserID=sa PassWord=****** DataBase=DB01 で接続されるテーブルDB01.Table1 と [インスタンスB] UserID=HogeUser PassWord=@@@@@@ DataBase=DB02 で接続されるテーブルDB02.Table2 の2つのテーブルを結合してプログラムから処理を行いたいのですが、 可能なのでしょうか。 SQLのイメージは select * from [インスタンスA].[db01].[dbo].[Table1] tbl1 join [インスタンスB].[db02].[dbo].[Table2] tbl2 on tbl1.id=tbl2.id という感じです(もちろん動作しませんが) インスタンスAとインスタンスBは同一マシンにあり、SQLServer2008SP1とします。 開発環境はVS2008SP1でSqlClient.SqlConnectionを使用して接続し、 SqlCommandにてSQLを作成し、実行するような形です。 どうかよろしくお願いいたします。

  • JavaからSqlServer2008への接続

    Java + EclipseからSqlServer2008への接続を勉強しています。 MidldegenというEclipseのプラグインを入れてhibernateのファイルを作成しようと試しているのですがうまくいきません。 Sql Server Management Studio2008でsaでログインし、[db1]というデータベースを作成し、その中に[tbl1]というテーブルを作成しています。 新規追加でMidldegenを選択するとフォームが表示されます。 フォームには以下の入力項目があります。 JDBC jar ->・・・sqljdbc.jar JDBCドライバ ->com.microsoft.sqlserver.jdbc.SQLServerDriver データベースURI ->jdbc:sqlserver://localhost:1433;databaseName=db1 ユーザ ->sa パスワード ->saのパスワード スキーマ ->空白です カテゴリ ->空白です ビューを含める ->false この状態でテーブル読み込みをすると 「データベース'%'が存在しません。名前が正しく入力されていることを確認してください。」 というエラーが出ます。。。 データベースURI ->jdbc:sqlserver://localhost:1433;databaseName=サーバ名\db1 とし、テーブル読み込みをすると 「このログインで要求されたデータベース"サーバ名\db1"を開けません。ログインに失敗しました。」 というエラーが出ます。。。 どなたかご教示よろしくお願いします

  • SQLServerでREPLACE/SELECTができるか?

    My-SQLでは以下のSQLにより test01というDBからtest02というDBへ データをinsertすることができると思います。 また「insert」ではなく「replace」にすることで 同一キーの場合エラーにならず置き換えで データを登録してくれます。 ======================================= insert into [test01].dbo.test_table select * from [test02].dbo.test_table ======================================= そこで上記の「replace」を同じように SQLServerでできないか知っている方が おられたら是非ご教授いただきたく。 よろしくお願いいたします。

  • asp sqlのselect文について

    asp記載は strSql = "Select * From dbo.テスト(テスト) Where 日付='20110324'" objSr.Open str.Sql,objCon.3 ※上記構文前にConnecting.StringやOPENは定義済みです。また、objSrはレコードセットで定義済みです。 質問内容は、このまま実装すると SQLServerエラー(80040e14) '('付近に不適切な構文があります。 と表示されます。 自分が調べたところ、テーブル名が「dbo.テスト(テスト)」で一部全角カッコがあるるので、 エラーになったのだと思われます。 ちなみに全角カッコではないテーブル名の参照は可能でした。 全角カッコを認識させるにはどうしたらよいでしょうか? [dbo.テスト(テスト)]は試しましたが([ ]で囲む) オブジェクト名dbo.テスト(テスト)が無効ですと表示され、エラーとなりました。 ご教授をお願いいたします。

  • c#でデータベースに接続して、sqlリソースファイ

    c#でデータベースに接続して、sqlリソースファイルに記入したselect文を使って、情報を取得する処理を作っているのですが、select文が、 select * from [DB].[スキーマ].[テーブル] where userID =‘11111111’ と、なっているのを、DBとuserIDは固定値ではないので、 select * from @DB.[スキーマ].[テーブル] where userID = @ID にしてリソースファイルに記入し、 c#側で@DBと@IDにパラメータ処理をして、情報を取得したいのですが、エラー発生してしまいます。 エラー内容 .の付近に不適切な… 恐らく@DB部分だと思うのですが、修正方法が分かりません。 分かる方、教えて下さるとうれしいです。 宜しくお願い致します。

  • オブジェクトエラー

    いつもお世話になっています。 質問なのですが、OracleのDBで、 User_tables オブジェクトにはテーブルデータが存在するのに、Select文でそのテーブルを見ようとしても ORA-04043: オブジェクト テーブル名 は存在しません と返ってきてしまいます。 ユーザー名.オブジェクト名 と記載しても同じエラーが返ってきてしまって 解決法が分からなかったので、質問させていただきました。 よろしくおねがいいたします。

  • SQLServer2008 ユーザー名の修飾無しでテーブル参照したい

    SQLServer2000で動作していたプログラムをSQLServer2008で動かそうとしています。 プログラムはDBのテーブルにアクセスする際にユーザー名(スキーマ)の修飾無しの SQLをDBに送っているためエラーになってしまいます。 SQLServer側の設定でスキーマと同じユーザーでログインしている場合は スキーマ修飾なしテーブルにアクセスする方法は無いでしょうか? 質問番号:4681290も参考にしたのですがログインユーザのサーバーロールはpublicのみが割り当てられています。 環境は専用レンタルサーバーでWindows Web Server 2008 + Microsoft SQL Server 2008です。 アドバイスいただければ幸いです。 よろしくお願いいたします。

  • これも「SQLの発行」している事になるのでしょうか

    accessの勉強をしていると、SQLの発行という言葉を良く見かけます。 しかし意味が良くわからないのでご教示いただきたいです。 -------------------------- SELECT テーブル1.* FROM テーブル1; -------------------------- 選択クエリとして、上記のSQL文を作り、保存し、 このクエリを開いただけでも 「SQLの発行」をした事になるのでしょうか? よろしくお願いいたします。

  • テーブル名を[]でくくらないとエラーになってしまう

    テーブル名を[]でくくらないとエラーになってしまいます sqlserver 2008 express edition を利用しているのですが テーブル名 やカラム名に[]でくくってSQL文を実行しないと エラーが出てしまいます 例えば select * from [table]  の様にしないといけません これを select * from table で実行できるようにしたいのです どうしたらいいのでしょうか 会社ではsqlserver2005を利用しているので 2008からは[]でくくる必要になったのでしょうか それとも初期設定で何かしないといけないのでしょうか 設定方法を教えて下さい sqlserver management studio2008もインストール済みです