在存储过程中使用IN函数,传入多个参数时,会有问题,三种解决方案:

添加函数:

create FUNCTION [dbo].[Split2]
(@RowData varchar(max),@SplitOn varchar(1)
)
RETURNS @RtnValue table
(Id int identity(1,1),Data varchar(4000)
)
AS
BEGIN Declare @Cnt intSet @Cnt = 1While (Charindex(@SplitOn,@RowData)>0)BeginInsert Into @RtnValue (data)Select Data = ltrim(rtrim(Substring(@RowData,1,Charindex(@SplitOn,@RowData)-1)))Set @RowData = Substring(@RowData,Charindex(@SplitOn,@RowData)+1,len(@RowData))Set @Cnt = @Cnt + 1EndInsert Into @RtnValue (data)Select Data = ltrim(rtrim(@RowData))Return
END

动态执行sql

EXEC('insert @TempTable select * from mytable where uid in ('+@ids+')')

使用charindex代替,但是此种方案,我没有测试成功,但是网上大部分人说,这个是可以的。所以这个有待商榷。

insert @TempTable select * from mytable where charindex(','+uid+',',''+@ids+'')>0

【SQLServer】 存储过程中,使用IN函数相关推荐

  1. SqlServer存储过程中循环的使用

    1.while循环 格式示例如下: declare @i int set @i=1 while @i<30 begin insert into test (userid) values(@i) ...

  2. SQLServer存储过程中break、continue及return的使用

    SQLServer编写存储过程中,我们会使用break.continue及return来中断程序的执行,这三者有什么区别,在此做以说明 break 退出 WHILE循环,执行循环体以后的语句,示例代码 ...

  3. 数据库(SQLServer)存储过程(PROCEDURE) 函数(function)

    数据库(SQLServer)基本语法 1)存储过程2)函数模拟场景:某所高中学校的一套内部管理系统,设有学生管理,班级管理,教师管理,教室管理以及课程管理以下例子为教师管理. 表管理说明:①Teach ...

  4. 在SqlServer存储过程中使用Cursor(游标)操作记录

    1. 为何使用游标:      使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式.用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的 ...

  5. SQLServer 2000中,存储过程和用户自定义函数具体的区别??

    2019独角兽企业重金招聘Python工程师标准>>> 存储过程 存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语 ...

  6. mysql存储过程into_MySQL存储过程中使用SELECT …INTO语句为变量赋值

    使用SELECT -INTO语句为变量赋值 在MySQL存储过程中,可以使用SELECT -INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量.SELECT -INTO语句 ...

  7. php 模板 自定义函数调用,thinkphp模板中使用自定义函数

    注意:自定义函数要放在项目应用目录/common/common.php中. 这里是关键. 模板变量的函数调用格式:{$varname|function1|function2=arg1,arg2,### ...

  8. 布尔类型(boolean)在oracle存储过程中支持情况

    文章目录 1.布尔类型在oracle存储过程中支持情况 (1)布尔类型在过程.函数.包中的支持情况 (2)布尔类型与其他类型的兼容情况 (3)布尔类型作为cast函数参数情况 (4)存储过程case- ...

  9. [转]SQLServer和Oracle,存储过程区别,常用函数对比

    本文转自:http://www.cnblogs.com/neru/archive/2011/08/18/2144049.html 以前一直用sqlserver,只有很少的一点oracle的经验,现在要 ...

最新文章

  1. 富士通服务器 css灯亮,富士通空调指示灯故障含义-富士通空调指示灯代码
  2. pipreqs生成python项目依赖清单
  3. 循环语句until和while
  4. 201403-5 任务调度
  5. 【STC15库函数上手笔记】7、PCA与PWM
  6. Spring事务管理知识概述
  7. 文档管理 linux,Linux 文档管理
  8. UVA10196 Check The Check【模拟+回溯】
  9. cmd 获取ftp没反应_python笔记13-执行cmd指令
  10. [收藏]DIV中控制超级链接的方法
  11. SSM框架中的Mapper.xml文件中的增、删、改、查等操作
  12. 科技部再公布网络安全等10项国家重点研发计划
  13. 电气图纸制图规范及电气图纸的识读方法大全
  14. 华为笔记本软件商店_华为推出电脑版“应用市场”,免费无广告,再也不用担心垃圾软件...
  15. 信息安全技术--轮转机密码
  16. linux 同步北京时间_设置linux的时间为北京时间
  17. TypeScript查缺补漏
  18. MFC、WTL、WPF、wxWidgets、Qt、GTK 对比
  19. 我打算写一个《程序员的成长课》
  20. VS2019打包程序安装后无法运行

热门文章

  1. ROS2之机器人辅助医疗 (医护服务机器人)
  2. Makeblock召开2018新品发布会,正式启用中文品牌名童心制物
  3. 学历对编程很重要吗?
  4. 添加 中科大linux源,CentOS配置网易163 中科大 yum源
  5. 你负责貌美如花,我负责赚钱养家
  6. IT实现工作流程自动化的8个步骤
  7. 【LaTeX 教程】05. LaTeX 插入图片
  8. 5款牛逼的 API 工具
  9. 史上最全 Android 应用角标适配方法
  10. DRIVER_IRQL_NOT_LESS_OR_EQUAL 0X000000d1 srvnet.sys