• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SqlServer2012 ビューとクエリ)

SqlServer2012 ビューとクエリの違いと概念について教えてください

toshih2000の回答

回答No.1

SQL Server の View と Access の クエリは同じだと思います。 しかし、 SQL Server の クエリ と Access のクエリは同じでは無いと思います。 SQL Server の クエリとは SQL文そのもの または それを保存したファイルを表しています。 クエリを実行するとは、SQL文を実行すると同じ意味です。 Table には実データが格納されていますが、 View の実体は SQL文です。 このSQL文をView として作成すれば、Table と同じように使えるようになります。 例えば t_aaa というテーブルが有った時、 検索する場合のSQL文としては SELECT * FROM t_aaa という感じで、テーブル名を使ってクエリを実行します。 t_aaa を元にした View v_bbb を作成したとします。 SQL文としては SELECT * FROM v_bbb これを実行することが ビューでクエリを実行するという意味です。 (出力結果はビューの作りによって異なります) View を作成する主な理由は以下です。 ・よく使用する複雑なSQLを簡単に扱えるようにする。 ・セキュリティのため、View にのみアクセス権を与える。

KAZUMI2003
質問者

お礼

結果的にクエリの代わりにビューを使うことにしました。 並べ替えが働かないのは、実際に使うSQLの中に、ビューを内包してOrderBy句を書くことにしました。 この度は教えていただいて、ありがとうございました。

KAZUMI2003
質問者

補足

回答ありがとうございます。 やはり、よくわからないので、図書館で本を何冊か借りてきました。 これから読んで、学習してみようと思います。 ちなみに、Accessからインポートしたクエリは、テーブル扱いになっています。いっそう混乱します。

関連するQ&A

  • SQLServer2005 実行したクエリ

    SQLServer2005にて実行したクエリを取得したいと考えています。 条件としては、実行したクエリとそれを実行したSPIDを取得できればと考えております。 接続が切れた時点で実行したクエリが消えてしまうので、別テーブルを用意して登録しておければ最高です。 理想としては、クエリが実行されたら用意したテーブルに実行したクエリとSPIDを書き込むといったかんじです。 しかし、システムテーブル、システムビューにトリガは付けられないようで困っています。 どなたかわかる方がいらっしゃったらよろしくお願いいたします。

  • ACCESSのクエリで同じSQL文だが結果が異なる

    ACCESS2003にて 選択クエリAをSQLビューで開きSQL文をコピー、 新規作成したクエリBのSQLビューに貼り付けて実行したところ、 AとBで結果の件数が異なりました。 そのままBを保存して終了。 BをSQLビューで開き、 SQL文の末尾の;を削除して実行すると、 Aと同じ件数の結果になりました。 再度Bを保存して終了し、 BをSQLビューで開き、 SQL文の末尾の;を削除して実行すると、 Aと異なる件数(元の結果)になりました。 何が原因なのでしょうか。 SQL文の内容は、サブクエリを含んでいて、サブクエリのFROMは SQLSERVERのリンクテーブルです。 よろしくお願いします。

  • Accessのクエリのプロパティ

    クエリのプロパティの「最大レコード数」について教えてください!! 「ODBCデータベースからAccessデータベースにデータを返すクエリやSQLデータベースからAccessプロジェクトにデータを返すビューで返される最大レコード数を指定します。」 という説明を見たのですが、なんのことやら。。。 わかりやすく教えてほしいのです。

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

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

  • SQLServer→Access インポート

    こんばんは。 Windows2000、Access2000でVBにて開発をしています。  1.SQLServerのリンクテーブルおよびAccessローカルテーブルからテーブル作成クエリを実行→TableA  2.TableAを「TableA_YYYY/MM/DD」としてSQLServerへコピー(YYYY/MM/DD=出力時の日付) 1.2.を前提に、前日のTableA_YYYY/MM/DDをAccessへ「TableB」としてインポートしたいのですが、 'SQLServerのデータベース名 Path = "ODBC;DSN=AAA;UID=BBB;PWD=CCC;DATABASE=DDD" DoCmd.TransferDatabase acImport, "ODBC データベース", Path, acTable, "TableA_" & DateAdd(d,-1,date), TableB, False, True とすると、 「クエリの構文エラーです。クエリの句が不完全です。」 とエラーになってしまいます。 どなたか、解決策を教えていただけたらと思います。

  • SQLserverについて

    SQLの勉強を兼ねて、SQLserver を インストールして使ってみたいのですが、 特にサーバーなど立てずに、 スタンドアローンの環境で SQLserverをインストールして ローカルのACCESS のmdbに接続して SQL文など実行出来るのでしょうか? (Enterprise Manager は 使えるのでしょうか?) よろしくお願いします。

  • SQLServer2000

    SQLServerにあるデータを他のプログラムから取得できません。ノーツ⇒ODBC⇒SQLServerのように設定しているのですが値の取得で失敗しているようです。クエリーは聞いているようです。 例えばノーツ⇒ODBC⇒アクセスではOKですが(クエリーされる。)、ノーツ⇒ODBC⇒SQLServerではダメです。エンタープライズマネジャーから同じクエリーを実行すると成功します。権限の問題なのか仕様の問題かわかりません。どなたか教えてください。 お願いします。

  • SQLServer2005 でSELECTを実行した結果(クエリ結果)がSQLServer2000の時の2倍の大きさになる

    SQLServer2005 でSELECTを実行した結果(クエリ結果)をファイルに出力したところ、同じデータベース項目をSQLServer2000 でSELECTした結果の2倍程度の大きさになる。 ファイルダンプを採取して中身をみたところ、UNICODEでファイル出力されており、すべての半角文字が2バイト表記されていたため、SQLServer2000(こちらは半角文字は1バイト)のほぼ2倍の大きさになっている事が分かりました。 SQLServer2005 でSELECTを実行した結果(クエリ結果)を半角文字は1バイトで出力する良い方法をご存じの方、ご教示いただけないでしょうか?

  • SQLServer7.0のエラーについて

    SQLServer7.0のSP4をあてたところ、サービスが 動かなくなってしまいました。 エラーログは下記の内容です。 "サーバー コマンド (プロセス ID #9) が原因でクエリの内部並列実行がデッドロックしました。クエリ ヒント オプション (maxdop 1) を使用して、クエリ内部並列実行を指定しないでクエリを再実行してください。" このエラーを回避する方法をご存知ではないでしょうか? SPをアンインストールすることはできないでしょうか? また、調べていたところOPTION句?を使用してMAXDOPを 1に設定するという方法がありました。 この方法をSQL文ではなく、ツール?から設定する方法をご存知でしたら教えてください。 知識がないためうまく説明できずすみません。 非常に困っております。 どなたかご存知の方おみえになりましたら教えてください。

  • クエリの保存場所

    新しいクエリを挿入して クエリを保存したときは データベースの ・テーブル ・ビュー ・シノニム ・プログラミング ・セキュリティ のどこに保存されるのでしょうか? SQL Server Management Studio ExpressのProjectsに「.sql」で保存されるようですが データベースから開くことはできないのでしょうか?