执行存储过程中提示必须声明标量变量,如何解决 10
存储过程如下:USE[资产管理系统]GO/******Object:StoredProcedure[dbo].[Pro_添加记录]ScriptDate:06/14/201...
存储过程如下:
USE [资产管理系统]
GO
/****** Object: StoredProcedure [dbo].[Pro_添加记录] Script Date: 06/14/2013 00:01:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
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
执行语句如下:
use 资产管理系统
EXEC Pro_添加记录 '123456','2013-06-13','张三','没损坏','是','20130614','没损坏','李四'
错误提示:
消息 137,级别 15,状态 2,第 3 行
必须声明标量变量 "@ID"。 展开
USE [资产管理系统]
GO
/****** Object: StoredProcedure [dbo].[Pro_添加记录] Script Date: 06/14/2013 00:01:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
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
执行语句如下:
use 资产管理系统
EXEC Pro_添加记录 '123456','2013-06-13','张三','没损坏','是','20130614','没损坏','李四'
错误提示:
消息 137,级别 15,状态 2,第 3 行
必须声明标量变量 "@ID"。 展开
展开全部
是不是因为这个
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
展开全部
--帮你改了 经过测试 没有问题
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
go
use 资产管理系统
EXEC Pro_添加记录 '123456','2013-06-13','张三','没损坏','是','20130614','没损坏','李四'
use 资产管理系统
EXEC Pro_添加记录 '123456','2013-06-13','张三','没损坏','是','20130614','没损坏','李四'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询