嗨在SQL Server中将参数传递给存储过程的有效方式是什么?以有效的方式传递给存储过程的参数
其实我的参数值包含像
@empids = '1,2,3,4,5,6,7,8,9'
一些这样的事高达1000
所以我试图通过1000逗号分隔值到一个单一参数的一些事情,这是工作精细。
但是除此之外,还有其他最好的解决方案吗?
谢谢
嗨在SQL Server中将参数传递给存储过程的有效方式是什么?以有效的方式传递给存储过程的参数
其实我的参数值包含像
@empids = '1,2,3,4,5,6,7,8,9'
一些这样的事高达1000
所以我试图通过1000逗号分隔值到一个单一参数的一些事情,这是工作精细。
但是除此之外,还有其他最好的解决方案吗?
谢谢
谢谢你的支持者。我会尝试使用这个 – jestges 2010-11-26 06:49:17
可以使用XML还
等作为
string CustomerIdXML ="<NewDataSet><Table1><Id>56</Id></Table1><Table1><Id>57</Id></Table1></NewDataSet>";
SqlParameter[] _param = new SqlParameter[1];
_param[0] = new SqlParameter("@XDoc", CustomerIdXML);
SqlDataAccess.ExecuteNonQuery(SqlDataAccess.ConnectionString, CommandType.StoredProcedure, "sp1", _param);
可以使用跟随着方式
CREATE PROC [dbo].[sp1]
@xDoc NTEXT
As
DECLARE @docHandle INT
EXEC sp_xml_preparedocument @docHandle OUTPUT, @xDoc
BEGIN TRANSACTION
UPDATE Tbl SET ISDelete = 1 WHERE Id IN (SELECT Id FROM OPENXML(@docHandle, '/NewDataSet/Table1', 3) WITH (Id BIGINT))
IF @@ERROR <> 0
BEGIN
ROLLBACK TRANSACTION
RETURN @@ERROR
END
COMMIT TRANSACTION
EXEC sp_xml_removedocument @docHandle
RETURN 1
retrive在SP ID中传递参数
Hopw you like this way
XML很棒,但在这种情况下,尽量保持简单。否则,你可能会遇到两个问题。 – invert 2010-11-26 07:39:52
已经有数百次的问题了...... – 2010-11-26 06:44:41