创建更新过程时出错

问题描述 投票:2回答:2

我目前正在制定更新程序。我已经检查了其他堆栈帖子和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
sql sql-server stored-procedures sql-update
2个回答
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

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

© www.soinside.com 2019 - 2024. All rights reserved.