传入的请求包含太多参数。服务器最多支持2100个参数-sql2008 / 2012

时间:2014-05-27 10:53:35

标签: sql-server

我收到的错误如

  

System.Data.SqlClient.SqlException:传入的请求包含太多参数。服务器最多支持2100个参数。减少参数数量并重新发送请求          在BitSpark.Data.Databases.Database.ExecuteGetDataReader(DbCommand dbCommand,CommandBehavior行为)
         在BitSpark.Data.Databases.Database.ExecuteGetDataReader(DbCommand dbCommand)
         at BitSpark.Data.DataPortal.DatabaseDataPortal.OnReadList(String metadataAssemblyName,String tableName,QueryBase q)
         at BitSpark.Data.DataPortal.DataPortalBase.ReadList(String metadataAssemblyName,String tableName,QueryBase q)

我正在使用bitspark工具从数据库中执行select操作。

我们有什么方法可以增加这个尺寸限制吗?

2 个答案:

答案 0 :(得分:2)

我的建议是使用表值参数。这是ad hoc T-SQL中的一个例子:

--Create the type only once in your database
create type myTableType as table (a int)

--This happens every time
declare @a myTableType;

insert into @a (a) values (1), (2), (3);

select * from someTable
where id in (select a from @a)

在数据库中创建表类型后,可以将该类型的参数(在我的示例中为myTableType)传递给存储过程。请记住,它们的行为与表变量一样。

答案 1 :(得分:1)

没有。这是数据库限制(特定于SQL Server),而不是BitSpark的限制。

您可以通过查询子集来解决此问题,首先是一组2100,然后是下一个2100,等等。