似乎是多余的,但我试图在一个过程中计算一个临时创建的表中的行数。
(注意:表格很可能编码错误)@rows
需要对变量进行计数,并且应该从变量中输出一年中的确切天数@StartDate
。(这包括闰年)。
创建的表还应在变量INSERT
之后VALUES
的每一天准确地记录一年。@StartDate
此作业需要 TEMPORARY TABLE。对不起人们,但这是老师要求的。
仅供参考:我是新手,非常感谢您的帮助:)
CREATE PROCEDURE usp_DateLookup
@StartDate DATE,
@Rows INT OUTPUT
AS
DECLARE @countIndex INT
DECLARE @yearDate DATE
DECLARE @todaysDate DATE
SET @yearDate = DATEADD(YEAR, 1,@StartDate)
SET @todaysDate = GETDATE()
BEGIN
CREATE TABLE #DateLookup
(
DateID INT IDENTITY (1,1),
DateDescription DATE
)
WHILE (SELECT DATEDIFF(DD,@StartDate, @yearDate) FROM #DateLookup) <= 366
BEGIN
SET @countIndex = @countIndex +1
INSERT #DateLookup (DateDescription)
VALUES (DAY(@todaysDate)+ @countIndex)
END
SET @Rows = (SELECT COUNT(DateDescription) FROM #DateLookup)
END
GO
DECLARE @StartDate DATE
DECLARE @Rows INT
SET @StartDate = '2012-05-06'
EXEC usp_DateLookup @StartDate, @Rows OUTPUT
PRINT CONVERT(NVARCHAR,@Rows)