CREATE PROCEDURE [dbo].[mp_insert]
AS
declare @sYear nchar(4)
declare @sMonth nchar(2)
declare @sDate nchar(7)
delete from table1set @sMonth=right('00' + convert(nchar(2),month(getdate())),2)
set @sYear=convert(nchar(4),year(getdate()))
set @sDate=@sYear + '/' + @sMonthif @sMonth='01'
begin
if exists(select * from table2 where ....)endGO
以上语句居然报错:Error156: Incorrent syntax near the keyword 'end'.
请问大家,问题出在哪里了?
AS
declare @sYear nchar(4)
declare @sMonth nchar(2)
declare @sDate nchar(7)
delete from table1set @sMonth=right('00' + convert(nchar(2),month(getdate())),2)
set @sYear=convert(nchar(4),year(getdate()))
set @sDate=@sYear + '/' + @sMonthif @sMonth='01'
begin
if exists(select * from table2 where ....)endGO
以上语句居然报错:Error156: Incorrent syntax near the keyword 'end'.
请问大家,问题出在哪里了?
if exists(select * from table2 where ....)end
最后这块
if判断下面没有语句begin
if exists(select * from table2 where ....)
.....
end
AS
begin--要有好习惯declare @sYear nchar(4)
declare @sMonth nchar(2)
declare @sDate nchar(7)
delete from table1set @sMonth=right('00' + convert(nchar(2),month(getdate())),2)
set @sYear=convert(nchar(4),year(getdate()))
set @sDate=@sYear + '/' + @sMonthif @sMonth='01'
begin
if exists(select * from table2 where ....)end
end --要有好习惯
GO
AS
declare @sYear nchar(4)
declare @sMonth nchar(2)
declare @sDate nchar(7)
delete from table1set @sMonth=right('00' + convert(nchar(2),month(getdate())),2)
set @sYear=convert(nchar(4),year(getdate()))
set @sDate=@sYear + '/' + @sMonthif @sMonth='01'
begin
if exists(select * from table2 )
print 1--指定
else
print 2end
AS
declare @sYear nchar(4)
declare @sMonth nchar(2)
declare @sDate nchar(7)
delete from table1set @sMonth=right('00' + convert(nchar(2),month(getdate())),2)
set @sYear=convert(nchar(4),year(getdate()))
set @sDate=@sYear + '/' + @sMonthif @sMonth='01'
begin
if exists(select * from table2 where ....)
---在这里
begin
endendGO
以上语句居然报错:Error156: Incorrent syntax near the keyword 'end'.
请问大家,问题出在哪里了?
if exists(select * from table2 where ....)end
在这句的if语句的条件的西面必须要有处理语句,如果没有语句就要报错!
实在不想有处理语句,就象上面人说的用一条print语句或者Rollback transaction语句吧!
多行语句在执行体中必须要在begin...end中间.
注意一下语法就好了,
谢谢先~~~