• 締切済み
  • すぐに回答を!

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

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

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数2786
  • ありがとう数22

みんなの回答

  • 回答No.1

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

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

共感・感謝の気持ちを伝えよう!

質問者からの補足

原因は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を作成し、実行するような形です。 どうかよろしくお願いいたします。

  • 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でできないか知っている方が おられたら是非ご教授いただきたく。 よろしくお願いいたします。

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

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

  • SQLを発行とは?クエリの作成とは違うのですか?

    SQLを発行とは?クエリの作成とは違うのですか? アクセスしかわからない者です。 (SQLServerは無知) SQLを発行とか実行とかの言葉をよく目にしますが アクセスでテーブルを元に選択クエリを作成するのは 俗に言う「SQLを発行」でしょうか?

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

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

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

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

  • SQLServer2000 SQL文について

    SQLServer2000 SQL文について Where句内で、このような演算指定はできますか? できない場合このようなSQLを実行したい場合 他にどのような方法が考えられますでしょうか? select a.id from a,b where a.yymm = b.yymm-1

  • SQL文について

    開発言語:VB2010 DB:SqlServer2005 及び ACCESS2007 SQLサーバーのテーブルをAccessのテーブルへINSERTしたいのですが、 一文で行う事は可能でしょうか? (テーブルの構造は全く同じです) 同じDB内であれば、下記のような感じで出来ると思うんですが。 +----------------------------------+ INSERT into Atest_ACCESS SELECT * FROM Btest_SQL Where OperationDate => 2011/09/05 +----------------------------------+ 出来るのあればどのようにすれば良いのが教えて頂けると幸いです。 よろしくお願い致します。

  • SQL文(重複データを省く)

    SQLServerのSQL文です。 dbo_TblAには以下のようなデータが2行入っています。(重複している) SYAINCD XXXXX StartDT 2011/1/1 EndDT 2011/12/31 YuukouDT 2011/1/2 以下のSQL文を発行すると、1行だけの結果を返してくるのですが 理由が分かりません。 まったく見たことのないSQL文の書き方なのでどう解釈してよいか分からず 困っています。 解釈いただけると大変助かります。 SELECT H.DT_Date, H.DT_EndDate FROM dbo_TblA AS H WHERE (((H.SYAINCD)="XXXXX") AND ((H.StartDT)=(SELECT MAX( K.StartDT) FROM dbo_TblA K, dbo_TblA L WHERE K.SYAINCD = H.SYAINCD AND L.SYAINCD = K.SYAINCD AND L.StartDT = K.StartDT AND L.YuukouDT = K.YuukouDT AND L.StartDT <= #2011/04/20#)) AND ((H.YuukouDT)=(SELECT MAX(H_ED.YuukouDT) FROM dbo_TblA H_ED WHERE H.SYAINCD = H_ED.SYAINCD AND H.StartDT = H_ED.StartDT AND H_ED.YuukouDT <= #2011/04/20#)));