首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求教!关于存储过程的变量,该怎么处理

2013-07-04 
求教!关于存储过程的变量Tb TbAuidbigintuname nvarcharTb TbC cidnvarcharcname nvarchar从A取数据 插入

求教!关于存储过程的变量
Tb TbA
uid   bigint
uname nvarchar

Tb TbC 
cid   nvarchar
cname nvarchar

从A取数据 插入到C
web页取的id(checkbox)列表,并调整为字符串 strids = "1,2,3,4,5,6,7",传入存储过程

存储过程主要代码: 
...
@ids nvarchar(2550)(input参数)
...
INSERT into TbC 
   (cid,cname) 
SELECT 
   CONVERT(nvarchar(255),uid),uname 
FROM TbA 
where uid IN (@ids)

提示不能将nvarchar 转为 bigint 错误处:where uid IN (@ids)

但是我用另一张表(ID是字符类型的)以同样方式插入到C,是可以的,请问是什么原因?

请高手们指点了!多谢多谢! sql 存储过程
[解决办法]
declare @sql nvarchar(max)
set @sql=
'INSERT into TbC 
   (cid,cname) 
SELECT 
   CONVERT(nvarchar(255),uid),uname 
FROM TbA 
where uid IN ('+@ids+')'
exec(@sql)
[解决办法]
try this,


-- input参数
@ids nvarchar(2550)
.
.
.
declare @tsql varchar(6000)

select @tsql='insert into TbC(cid,cname) '
            +' select convert(nvarchar(255),uid),uname '
            +' from TbA ' 
            +' where uid in('+@ids+') '

exec(@tsql)

[解决办法]
你的想法是好的,但當前SQL不支持你這種想法,只有等待SQL升級了......

热点排行