Sql 使用IF的存储过程
我需要一些帮助,我对SQL还是有点陌生。我有一个作为smartobject从另一个应用程序执行的存储过程。te更改前的代码与第1节中的代码类似。我根据第2节更改了代码,这样存储过程将首先查看Sales id类型是否实际上是3,并与存储过程中memberships表中的membershipnumber进行比较,然后在members表中执行相同的操作。如果查询是带有成员编号的3,我希望它使用members表中的到期日,而不是节中的到期日 选择@ExpiryDate=DATEADDYEAR,1,DATEADDd,-1,DATEADDm,0,@CreatedDate 这将使当前日期增加364天 第一节 第二节Sql 使用IF的存储过程,sql,sql-server-2008,if-statement,stored-procedures,Sql,Sql Server 2008,If Statement,Stored Procedures,我需要一些帮助,我对SQL还是有点陌生。我有一个作为smartobject从另一个应用程序执行的存储过程。te更改前的代码与第1节中的代码类似。我根据第2节更改了代码,这样存储过程将首先查看Sales id类型是否实际上是3,并与存储过程中memberships表中的membershipnumber进行比较,然后在members表中执行相同的操作。如果查询是带有成员编号的3,我希望它使用members表中的到期日,而不是节中的到期日 选择@ExpiryDate=DATEADDYEAR,1,DAT
请试试这个,因为你没有包括所有的栏目,所以很难完成这个答案
SELECT @ExpiryDate = M.MembershipExpiry From Memberships M WHERE M.MembershipNumber = @MembershipNumber AND M.SalesTypeId = 3 AND M.[Enabled] =1
IF @ExpiryDate IS NULL
BEGIN
SELECT @ExpiryDate = DATEADD(YEAR, 1, DATEADD(d, -1, DATEADD(m, 0, @CreatedDate)))
end
将代码更改为
开始
从成员M中选择@ExpiryDate=MembershipExpiry,其中M.MembershipNumber=@MembershipNumber
Memberships MS,其中M.MembershipNumber=@MembershipNumber和SalesTypeId=3,MS.[Enabled]=1
IF @ExpiryDate IS NULL
SELECT @ExpiryDate = DATEADD(YEAR, 1, DATEADD(d, -1, DATEADD(m, 0, @CreatedDate)))
END
您的问题是什么?当我尝试在我添加的部分上运行存储过程时,它会给我错误,不确定我是否正确使用了命令。请添加您的错误,以及您试图解决的问题,我将尝试帮助MSG 156,级别15,状态1,过程CP\U Create\U Card,第30行关键字“FROM”附近的语法不正确。Msg 156,15级,状态1,程序CP_创建卡,第32行关键字“FROM”附近语法不正确。Msg 156,级别15,状态1,过程CP_Create_Card,第34行关键字“OR”附近的语法不正确。我试图通知存储过程,如果SalestypeID的成员资格表上的值为3,则应使用成员资格表中相同成员资格号的到期日期,如果在启用的SalestypeID中发现3=1。如果不是,它应该使用语句SELECT@ExpiryDate=DATEADDYEAR,1,DATEADDd,-1,DATEADDm,0,@CreatedDateHi我尝试了给定的代码,但它从错误的表中提取了列。我调整了代码,但只有当M.SalesTypeId=3和M.[Enabled]=1必须使用到期日时,我才会在第二个“and and table name”上得到and erro
SELECT @ExpiryDate = M.MembershipExpiry From Memberships M WHERE M.MembershipNumber = @MembershipNumber AND M.SalesTypeId = 3 AND M.[Enabled] =1
IF @ExpiryDate IS NULL
BEGIN
SELECT @ExpiryDate = DATEADD(YEAR, 1, DATEADD(d, -1, DATEADD(m, 0, @CreatedDate)))
end
IF @ExpiryDate IS NULL
SELECT @ExpiryDate = DATEADD(YEAR, 1, DATEADD(d, -1, DATEADD(m, 0, @CreatedDate)))
END