gpt4 book ai didi

sql - 从存储过程更新表

转载 作者:行者123 更新时间:2023-12-04 22:26:32 25 4
gpt4 key购买 nike

我正在尝试自学数据库;感谢您的所有评论。我有下表。

CREATE TABLE AccountTable
(
AccountId INT IDENTITY(100,1) PRIMARY KEY,
FirstName NVARCHAR(50) NULL,
LastName NVARCHAR(50) NULL,
Street NVARCHAR(50) NULL,
StateId INT REFERENCES STATETABLE(StateId) NOT NULL
)

我想编写一个更新行的存储过程。我想象存储过程看起来像这样:

CREATE PROCEDURE AccountTable_Update
@Id INT,
@FirstName NVARCHAR(20),
@LastName NVARCHAR(20),
@StreetName NVARCHAR(20),
@StateId INT
AS
BEGIN
UPDATE AccountTable
Set FirstName = @FirstName
Set LastName = @LastName
Set Street = @StreetName
Set StateId = @StateId
WHERE AccountId = @Id
END

调用者提供他希望该行具有的新信息。我知道有些字段并不完全准确或精确;我这样做主要是为了学习。

  1. 我在 UPDATE 部分遇到 SET 命令的语法错误,我不知道如何修复它。
  2. 我正在编写的存储过程是您在现实生活中会编写的过程吗?这是反模式吗?
  3. 有没有我犯过的严重错误让您在阅读上述 TSQL 时感到畏缩?

最佳答案

Are there any grave errors I have made that just makes you cringe when you read the above TSQL?

不是真的“严重”,但我注意到您的表的字符串字段设置为 NVARCHAR(50) 的数据类型,而您的存储过程参数是 NVARCHAR(20)。这可能会引起关注。通常您的存储过程参数将匹配相应字段的数据类型和精度。

关于sql - 从存储过程更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1197755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com