• ベストアンサー

SQLServerでSQL%ROWCOUNT同様の命令?

Oracleで処理件数を取得するには SQL%ROWCOUNTを使いますが、 SQLServerでは、同様の命令はありますか? Webで検索してみましたが、なかなか見つかりません。 よろしくお願いします。 ※ Oracle7,8 SqlServer7

質問者が選んだベストアンサー

  • ベストアンサー
  • mkim
  • ベストアンサー率67% (25/37)
回答No.1

@@ROWCOUNT か、ROWCOUNT_BIG()で、どう?? そういう意味じゃない?? http://www.microsoft.com/japan/developer/library/tsqlref/ts_ra-rz_0f55.htm

参考URL:
http://www.microsoft.com/japan/developer/library/tsqlref/ts_ra-rz_0f55.htm
Hk2001
質問者

お礼

早速の回答ありがとうございます。 @@ROWCOUNTは使用していたのですが、IF @@ERROR <> 0 THEN ・・・ とエラートラップをを先に入れていたので 0件になっていたようです。 参考URLで原因が明らかになりました。 SQL発行以外ならいいと思っていました。IF文でもダメなんですね。

その他の回答 (1)

  • takekan
  • ベストアンサー率42% (6/14)
回答No.2

SQLServerで処理件数を取得する関数は「@@ROWCOUNT」です。 --例 DECLARE @kensu int SQLステートメント SELECT @kensu = @@ROWCOUNT --- ただし、SQLステートメントを発行した『直後』しか件数を取得できませんので注意をしてください。別のコマンドの後に記述すると常に1が返ってきます。 ご参考になれば幸いです。

Hk2001
質問者

お礼

早速の回答ありがとうございます。 @@ROWCOUNTは使用していたのですが、IF @@ERROR <> 0 THEN ・・・ とエラートラップをを先に入れていたので 0件になっていたようです。 SQL発行以外ならいいと思っていました。IF文でもダメなんですね。

関連するQ&A

  • SQLserver2000にSQL*LODERのような

    SQLserver2000にオラクルのSQL*LODERのような 機能は存在しないでしょうか? もし、存在するならば方法を教えて頂けると非常に 助かります。 宜しくお願い致します。

  • PL/SQLとMS SQLServerの違いを教えてください

    SQLを学ぼうとしているのですが。。。 概要で煮詰まってしまいました;; SQLはRDBMSにおいてのデータベース言語で、直接データベースに宣言を実行でき、PL/SQLはOracle社が開発した、手続き型に組み込めるSQLで、 MS SQLServerは。。。? Oracle SQLは。。。? と、調べれは調べるほどに、訳が分からなくなってきました; PL/SQLとMS SQLServerの違いはなんなのでしょうか? Oracle SQLとSQLは別物と考えてよいのでしょうか? 使用できるOSが違うのか、組み込める言語が特定されているのか、具体的な違いが判らず、どのような条件下で使用したらよいのかわかりません。 お手数ですがご解答よろしくお願いいたします。

  • SQLServerでのデータディクショナリ

    OracleでテーブルのNot Null制約や、カラムのバイト数、PKかどうかなどが取れるように、 SQL Server でも取れますでしょうか? Googleにて「SQLServer、 データディクショナリ」のキーワードで検索をしてみましたが、 出てくるのはOracleばかりでした。 (SQL Serverで使う言葉がデータディクショナリという言葉ではないのかも?) SQL Server での取得方法、もしくはGoogle検索用のワードを知りたいです。

  • 動的SQLの処理件数

    PL/SQL中でSQL文を文字列に入れて、動的SQLを実行するんですが、その後にSQL%ROWCOUNTで処理件数ってとることってできますか? 自分のソースが問題なのか、動的SQLに原因があるのか悩んでいます。環境はOracle8iです。

  • SQLserver2005より、SQLにて各データベースのプロパティに

    SQLserver2005より、SQLにて各データベースのプロパティにあるサイズと使用可能領域の値を取得したいのですが、そのようなSQLはありますでしょうか。

  • SQLの性能に関して

    SQLの初心者です。 質問がわかりずらかったら申し訳ありません。Oracleを使用してます。 多くのSQL文(約1000個)と、そのSQLでアクセスしたテーブルが保持しているレコード件数、さらに処理時間がかかれた資料があります。 取得できたレコード件数の資料はありません。 これらの資料を元に、SQLの性能は何に相関があるか(例えばjoinの数など)回帰分析を用いて調べようとしてます。 join数以外に、処理時間と何を比較すれば、相関が出そうですかね? また、変数を増やして重回帰分析も考えてます。 比較対象のアドバイスをお願いします。

  • 【Oracle9i Gold】SQL*LOADERはDML処理?

    Oracle9i Goldの取得を目指しています。 SQL*LOADERはDML処理ですか?それともDDL処理ですか?オプションでcommit件数が指定できるからDML処理だと思っているのですが。

  • SQLについて

    SQLには Transact-SQL、MySQL、PostgreSQL、PL/SQLといったように種類があります。 使用できる関数が違うとかは分かるのですが、 具体的に何がどう違うかなどははっきり理解できていません。 また、どのSQLをどのような用途で使用するのかなども分かっていません。 また、これに関することで、DBでSQLServerとかOracleとかが関わっていると思われるのですが。 例えば、SQLServerではTransact-SQLを使用して、Oracleでは別のSQL(ここはよく分かっていません)を使用するみたいなことでしょうか? 要はSQLというものがあって、それをコーディングするためのアプリケーションに対応しているものが、各SQLといった事? 例えば、C#、VBA、Java(Transact-SQL、MySQL)などのプログラミング言語(SQL)があって それを使用できるアプリケーションはそれぞれ VisualStudio、Excel、eclipse(SQLServer、Oracle)みたいな意味合いなんでしょうか? よく分からない質問と例えになってしまいましたが、ご回答のほうをよろしくお願いします。

  • 拡張SQLの記述方法を教えてください(Oracle・SQLserver)

    SQL文内に"sysdate"を記述してしまうとOracleでは動作しますが、 SQLsercerではエラーになると思います。そこで「拡張SQL」を 使用すればOracleでもSQLserverでも動作するようになると 聞いたのですが記述方法がわかりません。 どなたかご教授いただけませんでしょうか? 宜しくお願いいたします。

  • 動的SQLのCOUNTのとり方

    動的SQLで、DBの件数を取得したいのですが、 うまく取得できず困っています。 教えてください! 以下の様に、記述しているのですが取り方間違っていますか? EXEC SQL EXECUTE statment INTO :CNTNUM; PREPEAした、statmentには SELECT COUNT(*) FROM テーブル名 where kbn = 3; と、ごくごく普通のSELECT COUNT文です。 cnt_numは、int型のホスト変数で宣言しています。 デバックしながら実行すると、cnt_numの値は初期化した時の 0のままです。実際取得した件数が0件なのかもと思い 初期化時に3を代入して実行したら、やはり値は3でした。 なので、件数が取得出来ていないようです。 オラクルエラーにもならず、次の処理へ流れていってしまいます。 知っている方、教えてください。