■59296 / inTopicNo.2) |
Re[1]: int型にカンマ区切りのパラメータを渡したい |
□投稿者/ 魔界の仮面弁士 (2175回)-(2011/05/20(Fri) 16:40:47)
|
■No59292 (sato さん) に返信
> カンマ区切り(例 5,10,20)を渡して
> その結果を取得したいのですが
テーブル値パラメータで渡すのは駄目でしょうか。
http://msdn.microsoft.com/ja-jp/library/bb510489.aspx
http://blogs.wankuma.com/mura/archive/0001/01/01/116485.aspx
テーブル型で渡すのでは無く、文字列として『EXECUTE dbo.p_test '5,10,20'』のように
渡したいのであれば、動的SQL で処理する事になるかと思います。
CREATE PROCEDURE [dbo].[p_test]
(
@idList nvarchar(max) = null
) AS
BEGIN
DECLARE @SQL AS nvarchar(max)
IF @idList IS NULL OR @idList = ''
BEGIN
SET @SQL = 'SELECT * FROM FileMaster WHERE 1 = 0'
END
ELSE
BEGIN
SET @SQL = 'SELECT * FROM FileMaster WHERE Id IN (' + @idList + ')'
END
EXEC sp_executesql @SQL
END
|
|