首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过存储过程根据给定的记录ID删除更多记录

通过存储过程根据给定的记录ID删除更多记录
EN

Stack Overflow用户
提问于 2019-05-24 05:36:36
回答 1查看 52关注 0票数 0

我的应用程序使用SQL Server 2014。它有一个名为Report的表。我使用以下存储过程来删除记录。

代码语言:javascript
复制
create procedure delteReportsByIds
    @ids varchar(8000)
as 
begin
    exec ('delete from Report where id in ( '+ @ids +' )')
end

传递给ids的数据类似于

代码语言:javascript
复制
1,4,6

这将删除ID为1、4、6的3条记录。现在这个表非常大,一条记录的ID已经达到了7位,类似于

代码语言:javascript
复制
1380025

因此,存储过程一次最多只能删除1000条记录(具有7位ID)。我似乎不能增加8000的限制。如何使用上述步骤一次删除2000条记录?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-24 19:17:31

对于您的特定场景,可以尝试使用VARCHAR( MAX )。它可以容纳高达2 2GB的数据。但我个人尽量避免使用动态SQL,特别是在像您这样的简单场景中。注释中的@DaleBurrell建议或字符串拆分函数,用于解析输入并将结果连接到表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56283225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档