--存储过程
create PROCEDURE CompanyNews_Delete
@ids varchar(100),
@MemberId int
AS
declare @sql varchar(1000)
set @sql=''
if @memberId=0
set @sql='delete from [CompanyNews] where Id in ('+ @ids+')'
else
set @sql='delete from [CompanyNews] where MemberId=' + @MemberId + ' and Id in ('+ @ids+')'
exec(@sql)GO
exec CompanyNews_Delete '1,2,3',1
消息 245,级别 16,状态 1,过程 CompanyNews_Delete,第 10 行
在将 varchar 值 'delete from [CompanyNews] where and Id in (1,2,3) and MemberId=' 转换成数据类型 int 时失败。
怎么解决这个问题
create PROCEDURE CompanyNews_Delete
@ids varchar(100),
@MemberId int
AS
declare @sql varchar(1000)
set @sql=''
if @memberId=0
set @sql='delete from [CompanyNews] where Id in ('+ @ids+')'
else
set @sql='delete from [CompanyNews] where MemberId=' + @MemberId + ' and Id in ('+ @ids+')'
exec(@sql)GO
exec CompanyNews_Delete '1,2,3',1
消息 245,级别 16,状态 1,过程 CompanyNews_Delete,第 10 行
在将 varchar 值 'delete from [CompanyNews] where and Id in (1,2,3) and MemberId=' 转换成数据类型 int 时失败。
怎么解决这个问题
MemberId=' + @MemberId + ' and CHARINDEX('',''+LTRIM(Id)+'','' ,'','''+ @ids+''','''')>0'
或这样
请问各位高手 怎么解决这个问题
set @sql='delete from [CompanyNews] where MemberId=' + cast(@MemberId as varchar(50)) + ' and Id in ('+ @ids+')'