日期:2014-05-19  浏览次数:20847 次

根据ID删除一个信息的存储过程

alter   PROCEDURE   [dbo].[pro_allTable]
@tableName   varchar(100),--表名
@Id   int   --ID号
as
declare   @sql   varchar(1000)

Set   nocount   on

set   @sql=N 'DELETE   FROM   '+@tableName+   N '   WHERE   [ID]=   '+@id

exec   sp_executesql   @sql
go

出错
将   nvarchar   值   'DELETE   FROM   TABLE1   WHERE   [ID]= '   转换为数据类型为   int   的列时发生语法错误。
哪位大哥帮忙看一下

------解决方案--------------------
set @sql= 'DELETE FROM '+@tableName+ ' WHERE [ID]= '+ RTRIM(@id)

------解决方案--------------------
set @sql=N 'DELETE FROM '+@tableName+ N ' WHERE [ID]= '+ cast(@id as varchar(10))
一个varchar与一个int相加,不报错才怪
------解决方案--------------------
set @sql= 'DELETE FROM '+@tableName+ ' WHERE [ID]= '+ TRIM(@id)