我有这个存储过程,它接受每个13个字符长的字符串数组,例如:2345697894131,现在从我的后端代码我可以通过将我的数组转换为CSV字符串将其作为CSV传递。 因此,在存储过程中,我可以将其捕获为:
@in_product_id VARCHAR(MAX) or maybe VARCHAR(8000)
然后我使用拆分功能和IN来检查各种条件 例如:
IF EXISTS (SELECT top 1 * FROM Table WHERE (productid IN (SELECT (value) from dbo.split(@in_product_id,','))))
选择查询的语法可能不正确。
但这是接受一系列ID的理想方式。我担心的是,当productid数组太大而且超过MAX时,我将不得不追踪那些错过的ID。
我需要知道在存储过程中处理此类输入的理想方法,还是应该限制生产的数量?