一些SQL问题
来源:互联网 发布:华安期货软件 编辑:程序博客网 时间:2024/05/19 16:51
关于带分割符号的字符串查询问题
CREATE PROCEDURE TRD_ORDER_MAIN_DelBatchSkuFromCart@SkuProductSupplierPKId varchar(8000), --产品ID@MemberPKId int --会员IDas DECLARE @CartPKId int select @CartPKId=a.CartPKId from TRD_CART_MAIN a with(nolock) inner joinTRD_CART_DETAIL b with(nolock) on a.CartPKId=b.CartPKId where a.MemberPKId=CONVERT(VARCHAR,@MemberPKId) DELETE FROM dbo.TRD_CART_DETAIL WHERE SkuProductSupplierPKId in (@SkuProductSupplierPKId) and @CartPKId=CartPKId
这句SQL 看似没有问题,但是如果执行,delete 会报
在将 varchar 值 ‘1,2,3,4,5’ 转换成数据类型 int 时失败。
其实此条语句在执行时,执行的是
DELETE FROM dbo.TRD_CART_DETAIL WHERE SkuProductSupplierPKId in ('1,2,3,4,5') and @CartPKId=CartPKId
这样执行当然出错,因为@SkuProductSupplierPKId是一个字符串,现在是以参数的形式传递。
应将这句加exec执行函数(一定要加上exec不然还会报错),改为:
exec('DELETE FROM dbo.TRD_CART_DETAIL WHERE SkuProductSupplierPKId in ('+@SkuProductSupplierPKId+') and '+@CartPKId+'=CartPKId')
0 0
- SQL Server一些问题
- 一些SQL问题
- SQL的一些问题学习
- SQL Server的一些问题
- SQL的一些小问题
- SQL的一些小问题
- sql 导数据一些问题
- sql优化的一些问题
- SQL技巧以及一些查询效率问题
- DataGrid与SQl Server 的一些问题
- SQL Server 2000的一些问题
- 关于SQL server 2000 的一些问题
- 一些关于SQL SERVER 2008的问题
- SQL Service2008 一些小问题集合
- SQL需要注意的一些问题
- sql语句的一些小问题集锦
- sql server 2005 遇到的一些问题
- sql server replication遇到的一些问题
- firefox使用深色GTK主题时文本区域故障(vertex主题输入框字体为白色,看不清)
- android如何为listview的每项中edittext控件添加textwacher
- 搭建新项目的步骤(一)
- 不生成core文件原因
- centos5.6升级gcc4.8.2
- 一些SQL问题
- iOS学习爬坑记录18:ios获得设备cpu类型
- JAVA Socket
- 蓝牙协议栈
- Linux安装编译GCC
- MYSQL分页存储过程及事务处理
- 使用ElasticSearch+LogStash+Kibana+Redis搭建日志管理服务
- android:excludeFromRecents="true"
- iOS代码组织和架构总结