一直出错,受不了了~~~

boymaster 2004-03-30 12:34:47
老是说我没有对变量进行定义

declare @nID int
declare @iID varchar(9) --入库单编号
declare @inDate datetime --入库时间
declare @kcid int --分库
declare @iDept int --入库部门
declare @classid int --产品类别ID
declare @knum int --数量
declare @price money --单价
declare @total money --总额
declare @content varchar(255) --备注
declare @sql varchar(200)

set ...

set @sql=N'insert into 库存账本 (Dateandtime,pID,pDept,classid,jNum,jMoney,jSum,cNum,cMoney,cSum,content,Counts,kc'+cast(@kcid as char(1))+') VALUES (@inDate,@iID,@iDept,@classid,@kNum,@price,@total,@kNum,@price,@total,convert(text, @content),@kNum,@kcNum)'

exec sp_executesql @execsql
...全文
28 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
leeboyan 2004-03-30
  • 打赏
  • 举报
回复
@execsql
@kcNum
vileboy 2004-03-30
  • 打赏
  • 举报
回复
给你个例子。下面的例子通过了。
declare @tbl as varchar(20)
declare @v_vlu as varchar(20)
set @v_vlu='tt'
set @tbl='v_name'
--insert into tbl_test3(@tbl) values('test')
exec('insert into tbl_test3('+@tbl+') values('''+@v_vlu+''')')
zjcxc 2004-03-30
  • 打赏
  • 举报
回复
--另外,我没有检查你的变量是否有遗漏,太多了,你自己检查一下.
zjcxc 2004-03-30
  • 打赏
  • 举报
回复
declare @nID int
declare @iID varchar(9) --入库单编号
declare @inDate datetime --入库时间
declare @kcid int --分库
declare @iDept int --入库部门
declare @classid int --产品类别ID
declare @knum int --数量
declare @price money --单价
declare @total money --总额
declare @content varchar(255) --备注
declare @sql Nvarchar(1000) --*******这个变量类型要unicode类型

set ...

set @sql=N'insert into 库存账本 (Dateandtime,pID,pDept,classid,jNum,jMoney,jSum,cNum,cMoney,cSum,content,Counts,kc'+cast(@kcid as char(1))
+') VALUES (@inDate,@iID,@iDept,@classid,@kNum,@price,@total,@kNum,@price,@total,convert(text, @content),@kNum,@kcNum)'

exec sp_executesql @execsql
N',@nID int,@iID varchar(9),@inDate datetime,@kcid int,@iDept int,@classid int,@knum int,@price money,@total money,@content varchar(255)' --**这里要定义传入的变量
,@nID,@iID,@inDate ,@kcid ,@iDept ,@classid ,@knum ,@price ,@total ,@content --**这里要将变量传递过去
boymaster 2004-03-30
  • 打赏
  • 举报
回复
zjcxc(: 邹建 :) 兄:你的语句好像也不行啊
都是说:第 12 行: ',@kcid int,@content varchar(255)' 附近有语法错误。

create table tTmp (kc1 int,kc2 int,kc3 int, content text)

declare @kcid int
declare @content varchar(255)

set ...

declare @sql nvarchar(500)
set @sql=N'insert tTmp (kc' + RTrim(cast(@kcid as char)) + ',content) values (@kcid, convert(text, @content))'

exec sp_executesql @sql N',@kcid int,@content varchar(255)',@kcid, @content

按你说的,还是不行啊
boymaster 2004-03-30
  • 打赏
  • 举报
回复
楼上,,,在value为text类型时,可以吗?

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧