問題のコンテキスト:私はVisualStudioを2008を使用してデータセットを入力、executescalar()
に「簡単に」アクセスを提供スカラーを実行最初recorsetの最初の行の最初のフィールドの値を返します(この最後の部分は、多くの場合、省略されています)保存されたprocが中間レコードセットを返すのを防ぐには?
この動作に問題はほとんどの場合、あなたが最終select @returnValue
文で返される値を計算前に、いくつかの他の要求を作りたいということです。
私の質問は一般的にどのようにSPが中間レコードセットを返さないようにしますか? (私はSET FMTONLY ON/OFFを試みたが、不要な側の動作を持っています)
別の関連質問です:どのように更新された行を返すから、T-SQL UPDATEステートメントを防ぐのですか?場合によっては、UPDATEを使用して簡単に更新することができます...
ありがとう!
サンプル:
が、これは私の問題であり、それは "@cを選択し、" 最初に解決することができる
SET NOCOUNT ON;
declare @c int
select @c=(select count(*) from work where ...)
select @c -- so ExecuteScalar() works
update sousblocs set myfield = @c
where ...
select @c --after the update, won't be seen by ExecuteScalar()
return @c --useless for ExecuteScalar
END
BEGIN;しかし、私はあなたがレコーセット出力を無効にできるかどうか疑問に思っています。
"あなたは他のリクエストをしたい" - あなたのここでの意味を説明するためにあなたのsprocsのコード例を表示してください – AakashM
私は、あなたがアップデートで保存する値を計算し、その値を返したいこの場合、更新は最初に返されるレコードセット – oldbrazil