sql执行问题,在线等,

enaking 2020-01-08 05:33:56

exec sp_executesql N'update bk_Circulate set LoanFlag=1, BkReturnDate=''2020-01-08 17:03:18''
where LoanFlag=0 and Barcode in (@Barcodes);UPDATE bk_Barcode SET CirculateFlag=0
WHERE Barcode in (@Barcodes)',N'@Barcodes nvarchar(8)',@Barcodes=N'''234690'''
--如果我换成如下,修改成功
update bk_Circulate set LoanFlag=1, BkReturnDate='2020-01-08 17:03:18'
where LoanFlag=0 and Barcode in ('234690')
UPDATE bk_Barcode SET CirculateFlag=0
WHERE Barcode in ('234690')


用上面的方法执行,影响都为0,用下面的方法就能成功,刚接触参数查询写sql。谢谢大家。


...全文
257 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
enaking 2020-01-11
  • 打赏
  • 举报
回复
引用 10 楼 姎楹 的回复:
https://blog.csdn.net/wuyuander/article/details/82687458
上面的链接我没看懂但是跟你的问题好像一样
谢谢回复,这种方式就是加了exec('sql')执行的,我不希望那样做,主要那样做单引号太多了,我参数条件太多,调试的时候,眼睛都看痛了。
姎楹 2020-01-10
  • 打赏
  • 举报
回复
https://blog.csdn.net/wuyuander/article/details/82687458 上面的链接我没看懂但是跟你的问题好像一样
enaking 2020-01-10
  • 打赏
  • 举报
回复
顶一个。。。。。
enaking 2020-01-09
  • 打赏
  • 举报
回复
引用 6 楼 一支糖包仔 的回复:
你换个思路,
直接把where后面的全部变成参数
WHERE @Barcodes

@Barcodes="Barcode in ('234690','234691')"

这个样子行不行呢?
谢谢,看我楼上,我知道再加一个exec然后多加几个单引号就可以的,但确实比较烦一大把单引号,出错调试眼睛都看花了。
enaking 2020-01-09
  • 打赏
  • 举报
回复
问题了不管怎么变,这个逗号变成参数分隔的作用了。而不是Barcode的分隔符。
一支糖包仔 2020-01-09
  • 打赏
  • 举报
回复
你换个思路, 直接把where后面的全部变成参数 WHERE @Barcodes @Barcodes="Barcode in ('234690','234691')" 这个样子行不行呢?
enaking 2020-01-09
  • 打赏
  • 举报
回复
引用 4 楼 姎楹 的回复:
exec sp_executesql N'update dbo.Student set name=''张三''
WHERE sno=@Sno',N'@Sno nvarchar(8)', '1001'

改成这样看看
去掉最后的@Barcodes=N

你看看我二楼,我是拼不出in的条件。多个Barcode,如果直接@Barcodes='234690','234691',语法会报错的
姎楹 2020-01-09
  • 打赏
  • 举报
回复
exec sp_executesql N'update dbo.Student set name=''张三'' WHERE sno=@Sno',N'@Sno nvarchar(8)', '1001' 改成这样看看 去掉最后的@Barcodes=N
enaking 2020-01-09
  • 打赏
  • 举报
回复
没有人回我啊,在线等
enaking 2020-01-08
  • 打赏
  • 举报
回复
刚刚尝试了一下,这样就可以,这个in后面如何拼接,谢谢


exec sp_executesql N'update bk_Circulate set LoanFlag=1, BkReturnDate=''2020-01-08 17:03:18''
where LoanFlag=0 and Barcode=@Barcodes;UPDATE bk_Barcode SET CirculateFlag=0
WHERE Barcode=@Barcodes',N'@Barcodes nvarchar(8)',@Barcodes=N'234690'

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧