MSDE FunClub
Microsoft Data Engine FunClub
MSDE初心者向けメーリングリスト過去ログ[258]番
 
[TOP]>[MSDE初心者向けメーリングリスト過去ログ(258番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
@@error と  @@rowcount の値を同時に取得したい

Date: Mon, 20 May 2002 11:34:07 +0900
From: "Takahashi Kazuhiko --DRS--" <who@example.co.jp>


はじめまして。高橋 と申します。
堀川氏の【SQLServer7.0/MSDE】の上下巻を購入し、勉強を始めたばかりの
SQLの初心者です。よろしくお願いします。

INSERT や DELETE を実行して、成功したか 失敗したか どうかを
グローバル変数 @@error と @@rowcount を用いて判定したいと考えています。

具体的には、@@error の値を見て, 0 なら、@@rowcount が 予定通りの値で
あるかどうかをチェックしたいと考えています。

困っている点は、@@error の 値を取得すると @@rowcount の値が変化して
しまう事です。この点を回避する方法を ご存知の方、アドバイスを
お願いいたします。


---------------------------------------
-- サンプル コード
-- 
-- 開発環境 : 
--    MSDE2000 + Windows2000Professional
-- 
SET NOCOUNT ON

-- テーブルを作成する。
--
CREATE TABLE Test001
(
	UserId
		int
		NOT NULL,
	
	Name
		varchar(100)
		NOT NULL
)
GO

declare @errorValue int
declare @rowcountValue int

-- 宣言した変数に初期値を代入する。
set @errorValue = -1
set @rowcountValue = -1

-- 新規テーブルに、7 件 追加する。
insert into Test001 values( 1, 'takahashi' )
insert into Test001 values( 2, 'ando' )
insert into Test001 values( 3, 'suzuki' )
insert into Test001 values( 4, 'sato' )
insert into Test001 values( 5, 'ogawa' )
insert into Test001 values( 6, 'arakawa' )
insert into Test001 values( 7, 'yoshida' )

-- テーブルの中身を削除する。
DELETE FROM Test001

-- @@error と、@@rowcount を同時に取得したい。
-- @@error = 0 , @@rowcount = 7 になるはず。
/* 
Print '(@@error), (@@rowcount) ' 
     + CAST(@@error As varchar(10)) + ' // ' 
     + CAST(@@rowcount As varchar(10))
*/

-- グローバル変数の値を 宣言しておいた変数に保存する。
set @errorValue = @@error
set @rowcountValue = @@rowcount


-- 保存した変数を表示する。
Print '(@errorValue), (@rowcountValue) ' 
     + CAST(@errorValue As varchar(10)) + ' // ' 
     + CAST(@rowcountValue As varchar(10))
-- ==> @errorValue = 0 , @rowcountValue = 1 になってしまう。


-- テーブルを削除する。
DROP TABLE Test001


-----------------------------------------
開発環境 : SQL2000 + Win2000Pro + VC6
高橋 和彦




[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。