创建更新过程时出错

时间:2017-12-16 15:15:05

标签: sql sql-server stored-procedures sql-update

我目前正在制作更新程序。我已经检查了其他堆栈帖子和Youtube,但我似乎无法运行代码。这是我找到并尝试使其运行的一个代码:

UPDATE db_owner
SET Street = ISNULL(@Street, street), 
WHERE Street = @Street

我收到这些错误:

  

无效的对象名称db_Owner
  无效的列名称街道
  必须声明标量变量" @ Street"

我的表是:

dbo.Appointment
dbo.Owner
dbo.Pet
dbo.Vet

我的插入程序是:

dbo.Spinsert_dbo_appointment
dbo.Spinsert_dbo_owner
dbo.Spinsert_dbo_vet
dbo.Spinsert_dbo_pet

2 个答案:

答案 0 :(得分:3)

我会说使用这样的名称,而你真的没有一个名为db_owner的表,它是一个数据库角色:

UPDATE dbo.owner
SET Street=ISNULL(@Street, street) 
WHERE Street=@Street

现在发现错误Must declare the scalar variable "@Street",因为您没有声明变量:

DECLARE @Street DataType; -- declaration of the variable @Street
SET @Street = Value; -- Set a value to the variable @Street
UPDATE dbo.owner
    SET Street=ISNULL(@Street, street) 
    WHERE Street=@Street

答案 1 :(得分:0)

您收到此错误是因为您使用db_owner作为表名而不是dbo.owner。

另外,在使用之前声明变量@street。

喜欢这个

DECLARE @Street VARCHAR(50)
UPDATE dbo.owner
SET Street=ISNULL(@Street, street), 
WHERE Street=@Street

注意:系统角色是SQL Server,名为db_owner