gpt4 book ai didi

sql-server - 'end of file.' 附近的语法不正确 Expecting CONVERSATION, or TRY

转载 作者:行者123 更新时间:2023-12-05 08:13:26 24 4
gpt4 key购买 nike

我对此很陌生。我一直在弄乱一些 T-SQL,现在我正在做一些基本的密码。现在,当我这样做时,正如您将在代码中看到的那样,如果您使用重复的用户名,我将其设置为尝试抛出错误,如果它没有发现问题并创建帐户,它会显示“用户已创建”消息或类似的东西。那失败了,虽然主键确实阻止了重复用户名的插入,但无论如何它都会增加身份列,给我留下 2 个用户,一个用户 ID 1,另一个用户 ID 17。此外,它不会抛出一个错误,只是说命令已执行。因此,为了尝试强制出错,我对我的代码做了一些可能非常复杂的事情,现在它在最后给我一个不正确的语法错误。

确切的错误如标题所示,“'文件末尾'附近的语法不正确。”期待对话,或尝试。”我不知道为什么。我四处搜索了一下,但似乎找不到其他人遇到此错误,也无法理解为什么它会期望这些事情中的任何一个,所以我迷路了。沉浸在我的意大利面代码的荣耀中;如果您能想出一种方法来解决最初的问题,即不从存储过程中抛出错误,而不是修复不正确的语法错误,那也很受欢迎。

ALTER procedure [dbo].[adduser]
@pUsername nvarchar(50),
@pPassword nvarchar(50),
@responsemessage nvarchar(250) output,
@saveme nvarchar(30) = 'Duplicate username'
as
set nocount on
begin


declare @salt UNIQUEIDENTIFIER=newid()
begin tran

begin try
if exists ((select Username from UserLogins where Username = @pUsername))
begin
rollback tran
raiserror(1337, 16, @saveme)
end
else
begin try

insert into dbo.UserLogins (Username, PasswordHash, Salt)
values(@pUsername, hashbytes('SHA2_512', @pPassword+cast(@salt as nvarchar(36))), @salt)
set @responsemessage='User created'

end try
begin catch
set @responsemessage = ERROR_MESSAGE()
end catch

end

最佳答案

alter procedure [dbo].[adduser]
@pUsername nvarchar(50),
@pPassword nvarchar(50),
@responsemessage nvarchar(250) output
as
begin

set nocount on

begin try
declare @salt UNIQUEIDENTIFIER=newid()
declare @saveme nvarchar(20) = 'Duplicate username'
begin tran t1
if exists ((select Username from UserLogins where Username = @pUsername))
begin
raiserror(@saveme,16, 1)
end
else
begin
insert into UserLogins (Username, Password, Salt)
values(@pUsername, hashbytes('SHA2_512', @pPassword+cast(@salt as nvarchar(36))), @salt)
set @responsemessage='User created'
end
commit tran t1
end try
begin catch
set @responsemessage = ERROR_MESSAGE()
rollback tran t1
end catch


end

关于sql-server - 'end of file.' 附近的语法不正确 Expecting CONVERSATION, or TRY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40428168/

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