create procedure testp @bbsid varchar(100) as begin declare @sql varchar(1000) set @sql='select * from table where id in('+ @bbsid + ')' exec(@sql) end go
To:arrow_gx(8088的脑袋) 将 varchar 值 '+@bbs_bbsid+' 转换为数据类型为 int 的列时发生语法错误。
都说不用进行数据转换了,直接用字符类型的,存储过程代码如下:create procedure pro_test @bbsid varchar(100) as begin declare @sql varchar(1000) set @sql='select * from table where id in('+ @bbsid + ')' exec(@sql) end go
同意 arrow_gx(8088的脑袋),是对的 declare @sql nvarchar(100) set @sql='select * from table where id in('+ @bbsid + ')' exec sp_executesql @sql
@bbsid varchar(100)
as
begin
declare @sql varchar(1000)
set @sql='select * from table where id in('+ @bbsid + ')'
exec(@sql)
end
go
@bbsid varchar(100)
as
begin
declare @sql varchar(1000)
set @sql='select * from table where id in('+ @bbsid + ')'
exec(@sql)
end
go
同意
arrow_gx(8088的脑袋),是对的
declare @sql nvarchar(100)
set @sql='select * from table where id in('+ @bbsid + ')'
exec sp_executesql @sql