加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

复选框多选sql执行语句

发布时间:2020-12-12 16:08:43 所属栏目:MsSql教程 来源:网络整理
导读:在复选框多选的时候,我们找到多行数据,需要在数据库中查询.这个多行数据查询的时候,例如id. 此时变为了一个长的一个字符串,他的sql存储过程如下 create proc proc_deleteCheck @deletes varchar(max)? as declare @set varch ar(max); set @set='delete from

在复选框多选的时候,我们找到多行数据,需要在数据库中查询.这个多行数据查询的时候,例如id.

此时变为了一个长的一个字符串,他的sql存储过程如下

create proc proc_deleteCheck
@deletes varchar(max)?
as
declare @set varchar(max);
set @set='delete from Student where StuNum in ('+@deletes+')'
exec(@set)

但是为先写的不是这个,是以下这个语句


create proc proc_deleteCheck
@deletes varchar(max)?
as
delete from Student where StuNum in (@deletes)
但问题是这个语句并不能查询到我想要的结果.就是说,这个查询条件在语句中找不到.

原因我也想到了.是因为@deletes的语句是一个字符串,但是sql中的in里面是个集合,而不是字符串


d



-------------------------------- 作者在 2020-01-17 14:02:33 补充以下内容 --------------------------------

这个是因为在SQL查询中直接赋予变量是不到单引号的,而IN必须为字符串集合

可以将此句查询SQL改为字符串,使用EXEC执行此句查询字符串



ALTER proc proc_deleteCheck_aaaaaaa
@deletes varchar(max)?
AS
DECLARE @sql VARCHAR(max)
begin
SET @sql='SELECT *? from dbo.Traffic_Sites where SiteKey in ('+@deletes+')'
EXEC(@sql)
END
---调用
proc_deleteCheck_aaaaaaa '''P00001'',''p00002'''

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读