任何人都知道为什么这会给我一个错误102,错误的语法?
declare @i int=20
while @i<=50
begin
try
if convert(char,getdate(),@i) is not null
begin
select convert(char,getdate(),@i)
end
set @i=@i+1
end try
begin catch
set @i=@i+1
end catch;
end
答案 0 :(得分:2)
在结束捕获后删除半冒号,并在尝试之前添加begin。
像
这样的东西declare @i int=20
while @i<=50
begin
begin try
if convert(char,getdate(),@i) is not null
begin
select convert(char,getdate(),@i)
end
set @i=@i+1
end try
begin catch
set @i=@i+1
end catch
end
BEGIN TRY
{ sql_statement | statement_block }
END TRY
BEGIN CATCH
[ { sql_statement | statement_block } ]
END CATCH
答案 1 :(得分:2)
根据您的缩进判断,我相信您希望第5行BEGIN TRY
。
答案 2 :(得分:1)
begin try
,而不只是try
,因此begin
之前的try
将与try
相关联。这意味着catch
最终在while
之外,与try
分开,最后您最终会得到一个end
个语句。
因此,只需将try
更改为begin try
。