我希望能够查询多个相同类型的参数(例如,几个ID,只是为了保持示例简单)所以我只需要为每个单独的ID执行一次而不是一次。我的单实例proc返回一个名称,我的get-all proc将返回一个单列的名称表。
我现在拥有的:
EXEC MyProc(123);
EXEC MyProc(456);
EXEC MyProc(789);
我想要的是什么:
// Square brackets aren't correct syntax,
// they just represent a list that contains x number of IDs
EXEC MyProc([123, 456, 789]);
我可以这样做,如果是这样,是否有一个简单的机制来处理这样的事情,不涉及游标和各种过于复杂的事情?这甚至会被认为是一个好主意吗?
答案 0 :(得分:0)
要只执行一次proc,你必须重构你的proc以使用多个ID,因为没有T-SQL函数或语法糖为你做这个。
如果这是varadic,因为可能有一个或多个ID,您必须在一个参数中将多个ID传递给您的proc。在更新版本的SQL Server中,这种类型的传递可以更容易。
例如,您可以尝试传递:
快速搜索传递数组是SQL Server将产生更多结果,其中最好的是Arrays and Lists in SQL Server,如@Andomar所述。