执行存储过程中提示必须声明标量变量,如何解决

2024-12-19 23:27:05
推荐回答(3个)
回答1:

是不是因为这个

EXEC('INSERT INTO '+@TABLENAME+'
(ID,借出日期,借入者,借前状况,是否归还,归还日期,还后状况,经手人)
VALUES(@ID,@Bdate,@Borrower,@Jqzk,@Sfgh,@Rdate,@Hhzk,@Jsr)')
END

你要不试下

EXEC('INSERT INTO '+@TABLENAME+'
(ID,借出日期,借入者,借前状况,是否归还,归还日期,还后状况,经手人)
VALUES('''+@ID+''','''+@Bdate+''','''+@Borrower+''','''+@Jqzk+''','''+@Sfgh+''','''+@Rdate+''','''+@Hhzk+''','''+@Jsr+''')')
END

回答2:

--帮你改了 经过测试 没有问题
alter PROCEDURE [dbo].[Pro_添加记录]
@ID varchar(50),
@Bdate varchar(50),
@Borrower varchar(50),
@Jqzk varchar(50),
@Sfgh varchar(8),
@Rdate varchar(50),
@Hhzk varchar(50),
@Jsr varchar(50)
AS
begin
DECLARE @TABLENAME AS VARCHAR(50)
SET @TABLENAME = '[设备'+@ID+'外借情况]'
EXEC('INSERT INTO '+@TABLENAME+'
(ID,借出日期,借入者,借前状况,是否归还,归还日期,还后状况,经手人)
VALUES('+@ID+','+@Bdate+','+@Borrower+','+@Jqzk+','+@Sfgh+','+@Rdate+','+@Hhzk+','+@Jsr+')')
end

回答3:

go
use 资产管理系统
EXEC Pro_添加记录 '123456','2013-06-13','张三','没损坏','是','20130614','没损坏','李四'