UPDATE 存储过程

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER procedure [dbo].[NewUpdateCommand]
(
@材料名称 VarChar(10),
@产地 char(10),
@型号 char(10),
@价格 float,
@日期 datetime
)
as
SET NOCOUNT OFF;
update PVCPrice ////这里出现了问题 消息 208,级别 16,状态 6,过程 NewUpdateCommand,第 11 行
对象名 'dbo.NewUpdateCommand' 无效。

set
产地=@产地,
型号=@型号,
价格=@价格,
日期=@日期
where 材料名称=@材料名称

先在数据库中创建test表,表中有列名为name,类型为varchar(50)
然后先执行
create procedure proc_insert
@name varchar(50)
as
begin
insert into test values(@name)--插入数据
end
go
create procedure proc_update
@newname varchar(50),@oldname varchar(50)
as
begin
update test set name=@newname where name=@oldname--更新数据
end
go
--其中proc_insert为存储过程名,可自定义 procedure可使用简写proc
上面执行完成后调用存储过程
exec proc_insert '晓华'--将"晓华"添加到test表中
exec proc_update '小明','晓华' --将表中'晓华' 改为'小明',必须与存储过程变量顺序相同
exec proc_update @oldname='小明',@newname='晓华'--与存储过程变量顺序可以不同

drop procedure proc_insert 删除存储过程proc_insert.
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-20
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER procedure [dbo].[NewUpdateCommand]
(
@材料名称 VarChar(10),
@产地 char(10),
@型号 char(10),
@价格 float,
@日期 datetime
)
as
SET NOCOUNT OFF;
update PVCPrice
set
产地=@产地,
型号=@型号,
价格=@价格,
日期=@日期
where 材料名称=@材料名称本回答被提问者采纳