Sql server 关键字“set”和with子句附近的语法不正确
我有如下的存储过程逻辑。我明白了 关键字“set”附近的语法不正确 由于错误,请向我建议解决方案Sql server 关键字“set”和with子句附近的语法不正确,sql-server,tsql,Sql Server,Tsql,我有如下的存储过程逻辑。我明白了 关键字“set”附近的语法不正确 由于错误,请向我建议解决方案 Declare @VAL int Declare @Region bigint drop table Tempqq Select * Into Tempqq From dbo.split(@SpokeFolderList, ',') while (Select Count(*) From Tempqq) > 0 begin Select Top 1 @VAL = Tempq
Declare @VAL int
Declare @Region bigint
drop table Tempqq
Select * Into Tempqq From dbo.split(@SpokeFolderList, ',')
while (Select Count(*) From Tempqq) > 0
begin
Select Top 1 @VAL = Tempqq.val From Tempqq
;With MyCount AS
(
Select DispatchToRegionId ,FolderNo, row_number() OVER(ORDER BY FolderNo DESC) as Row
from tblTransite where FolderNo = @VAL group by DispatchToRegionId,FolderNo
)
set @Region =( Select top 1 DispatchToRegionId from MyCount
order by Row desc )
print @VAL
Delete Tempqq Where Tempqq.val = @VAL
end
CTE更像一个视图,而不是一个存储过程。没有
似乎语法正确
和Delete应该有一个From关键字
试试这个
Declare @VAL int
Declare @Region bigint
Drop table Tempqq
Select * Into Tempqq From dbo.split(@SpokeFolderList, ',')
While (Select Count(*) From Tempqq) > 0
Begin
Select Top 1 @VAL = Tempqq.val From Tempqq
;With MyCount AS
(
Select DispatchToRegionId ,FolderNo, row_number() OVER(ORDER BY FolderNo DESC) as Row
From tblTransite where FolderNo = @VAL group by DispatchToRegionId,FolderNo
)
Select @Region =(Select top 1 DispatchToRegionId from MyCount order by Row desc)
Print @VAL
Delete From Tempqq Where Tempqq.val = @VAL
End
试试这个
Declare @VAL int
Declare @Region bigint
drop table Tempqq
Select * Into Tempqq From dbo.split(@SpokeFolderList, ',')
while (Select Count(*) From Tempqq) > 0
begin
Select Top 1 @VAL = Tempqq.val From Tempqq
;With MyCount AS
(
Select DispatchToRegionId ,FolderNo, row_number() OVER(ORDER BY FolderNo DESC) as Row
from tblTransite where FolderNo = @VAL group by DispatchToRegionId,FolderNo
)
Select top 1 DispatchToRegionId into @Region from MyCount
order by Row desc
print @VAL
Delete Tempqq Where Tempqq.val = @VAL
end
使用Select而不是Set。该删除应该有一个from,即delete from TEMPQSELECT对我的作用大于X。。。。全部@Thanosmarkou:但是:不要以;作为前缀;。分号;用于终止语句@一匹没有名字的马,如果我去掉它;我在“MyCount”附近得到错误的语法。如果这是一个公共表表达式,则需要使用分号显式终止前面的语句。