使用Case语句和变量的存储过程中的QA,不断获得不正确的语法错误

时间:2014-07-22 19:27:49

标签: sql-server-2008 stored-procedures

我正在使用SQL Server 2008 R2。我有一个存储过程,可以在计算某些列时从两个源表附加到主表。在我可以从源1附加到主表之前,我必须更新列Service_Element,以便下游过程可以正确地连接表。

我更新后想要创建一些QA,这样如果列没有正确更新,它将停止程序(这导致我和我的团队上个月重新运行我们的整个过程,因为错误直到在我们运行了一切之后)

以下是我到目前为止的代码。

declare @secount as int

set @secount = (
   select COUNT(*) 
   from (
      select 
         datepart(year, ReportingMonth) as full_year, 
         Service_Element, 
         sum(Quantity) as amount 
      from tbl_VolumeImport  
      where (Service_Element like '%Windows%' or Service_Element like '%Linux%' ) 
        and datepart(year, ReportingMonth) = '2014'
      group by datepart(year, ReportingMonth), Service_Element) as E)   

select case 
    when @secount = 0 then print 'no errors' else print 'can not proceed'
end as Error

这是我得到的错误:

  

Msg 156,Level 15,State 1,Line 11
  关键字'print'附近的语法不正确。

     

Msg 102,Level 15,State 1,Line 12
  'end'附近的语法不正确。

此外,我想将else更改为RETURN,以便停止其余的操作。

由于

1 个答案:

答案 0 :(得分:0)

试试这个。

if @secount = 0 
begin
   print 'no errors'
end
else
begin
   print 'can not proceed'
   return
end

更多代码....