
タイトルの通り、execの結果をoutputパラメータに持たせたいのですが、
どうすればご存知の方、ご教授お願いします。以下のように、count(*)の結果を持たせたいです。以下にサンプルコードを記載しました。
---ストアドabc---
( @aWork int output,
@bWork int output,
@cWork int output,
@IDs varchar )
declare @Sql1 varchar(500)
declare @Sql2 varchar(500)
declare @Sql3 varchar(500)
declare @IDs varchar(500)
set = '1,2,3'
set @Sql1 = 'select count(*) from a where id = ' + IDs
-- @aWork = exec(@Sql1)としたい
exec(@Sql1)
set @Sql2 = 'select count(*) from b where id = ' + IDs
-- @bWork = exec(@Sql2)としたい
exec(@Sql2)
set @Sql3 = 'select count(*) from c where id = ' + IDs
-- @cWork = exec(@Sql3)としたい
exec(@Sql3)
No.1ベストアンサー
- 回答日時:
EXECでSQLを動かした場合は、COUNTの結果は取れないですね。
select @aWork = count(*) from a where id = @IDs
でやれば、OUTPUTで結果を返すんですが、どうしてもEXECじゃ
なきゃダメであれば、EXECじゃなく、sp_executesqlを使って、
下記のようにしてみたらどうでしょう?
-- 実行
EXEC sp_executesql
N'select @aWork = count(*) from a where id = @IDs',
N'@aWork int OUTPUT, @IDs varchar(max)',
@aWork output, @IDs
ご参考までに、どうぞ。
参考URL:http://blogs.sqlpassj.org/yoshihirokawabata/arch …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ユーザー定義関数内でのsp_executesqlプロシージャの使用
SQL Server
-
SQLで列名を変数にできないでしょうか
SQL Server
-
ストアドプロシージャ_カーソルのヒット件数
その他(データベース)
-
-
4
T-SQLの sp_executesql について
SQL Server
-
5
列名に変数を使うことはできないのでしょうか?
SQL Server
-
6
SQLServer2005のSQL文での別名の取り扱い
SQL Server
-
7
ストアドをまたがるローカル一時テーブル
SQL Server
-
8
処理件数を非表示にしたい
SQL Server
-
9
MS SQLServer のSQLで文字列の前にN:
その他(データベース)
-
10
SQLSERVERエージェントからのストアド実行方法について
SQL Server
-
11
ストアドプロシジャからストアドプロシジャを呼ぶには?
Oracle
-
12
SQLServerのストアドで戻り値取得したい。
SQL Server
-
13
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
14
【PL/SQL】FROM区に変数を使う方法
Oracle
-
15
SQLSever 一括インポートについて
その他(パソコン・スマホ・電化製品)
-
16
ストアドプロシージャで外部プログラムを起動するには?
SQL Server
-
17
検索結果の列数を動的に変更したい
SQL Server
-
18
DBの定義のサイズを大きくし過ぎると問題ある?
その他(データベース)
-
19
BULK INSERT時のNull許容について
SQL Server
-
20
テーブル名が可変の場合のクエリの書き方
MySQL
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
select文のwhere句に配列を入れ...
-
エクセルの関数について教えて...
-
ゲストOS(CentOS 5)にVMware ...
-
複数テーブルのGROUP BY の使い...
-
VIEWの元のテーブルのindexって...
-
【Transact-sql】 execの結果を...
-
inner joinをすると数がおかし...
-
Mysql でレコードを追加した時...
-
エラー 1068 (42000): 複数の主...
-
Access パラメータクエリをcsv...
-
マイクラPC版のコマンドで効率...
-
INで抽出した順番に並び替え(S...
-
SQL Left Join で重複を排除す...
-
MySQL SQL文 仮想カラムに番号...
-
SQLにて特定の文字を除いた検索...
-
[MySQL] UNIQUE制約の値を更新...
-
副問合せの書き方について
-
キー毎の、ある列のmaxのレコー...
-
VBでストアドプロシージャ一覧...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
sqlで、600行あるテーブルを100...
-
select文のwhere句に配列を入れ...
-
SQLにて特定の文字を除いた検索...
-
WordpressのContact form 7でzi...
-
SQLサーバから、項目の属性(型...
-
VIEWの元のテーブルのindexって...
-
クエリ表示と、ADOで抽出したレ...
-
マイクラPC版のコマンドで効率...
-
【Transact-sql】 execの結果を...
-
SQL Left Join で重複を排除す...
-
エラー 1068 (42000): 複数の主...
-
[MySQL] UNIQUE制約の値を更新...
-
inner joinをすると数がおかし...
-
1テーブル&複数レコードの更新...
-
Access パラメータクエリをcsv...
-
期間の重複を調べるSQL文につい...
-
Unionした最後にGROUP BYを追加...
-
Updateの複数テーブル条件時のL...
おすすめ情報