0
消息134,级别15,状态1,行21
变量名'@AsOfDate'已被声明。变量名称在查询批处理或存储过程中必须是唯一的。在SQL Server 2014中的IF语句中设置变量
运行一组IF语句时出现此错误。理想情况下,我只需要将我的位切换到1,然后执行我的代码即可。 IF
声明将设置我需要的日期。
我已经尝试过IF
和ELSE IF
,但这两者似乎都没有什么区别。任何建议我如何能做到这一点将不胜感激。可悲的是,我不能简单地选择我所在的地区(或之前的地区),因为这些报告可能随时要求提供。
-------------------------
-- Choose Quarter --
-------------------------
DECLARE @Q1 BIT = 0
DECLARE @Q2 BIT = 0
DECLARE @Q3 BIT = 0
DECLARE @Q4 BIT = 0
DECLARE @Annual BIT = 0
-------------------------
--Q1
IF @Q1 = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-03-31';
DECLARE @StartDate datetime = '2016-01-01'
END
--Q2
IF @Q2 = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-06-30';
DECLARE @StartDate datetime = '2016-04-01'
END
--Q3
IF @Q3 = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-09-30';
DECLARE @StartDate datetime = '2016-07-01'
END
--Q4
IF @Q4 = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-12-31';
DECLARE @StartDate datetime = '2016-10-01'
END
-- ANNUAL
IF @Annual = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-12-31';
DECLARE @StartDate datetime = '2016-01-01'
END
-- Check to ensure a time period is set
IF (@Q1 = 0 AND @Q2 = 0 AND @Q3 = 0 AND @Q4 = 0 AND @ANNUAL = 0)
BEGIN
PRINT 'NO TIME SET'
END
-- Run Code with dates
ELSE
BEGIN
编辑:
无视...其实看完我的错误和代码清楚地表明了我的定义所问题的变量没有设置......解决办法是宣布我的IF以外的变量语句并在语句中设置它们。
我很高兴你能找到解决你的问题。您应该将解决方案作为答案发布,而不是编辑问题,以便其他人能够看到它。 –
请发表一个答案,不要更新你的问题的代码是正确的。这只是令人困惑。 – Blorgbeard
同意,我要重新编辑我的问题以显示原始错误代码。不知道为什么我不想简单地发表一个答案,我猜是因为它发生了正确,因为我提出了这个问题:D – Izulien