2013-09-27 31 views
0

我已经创建了一个存储过程来将记录插入假期的表中。目前我只能让它插入一个日期。我想要做的是能够使用一个之间进入一整周或一个月等。更新表日期范围的存储过程sql

我的存储过程是:

ALTER procedure [dbo].[usp_UpdateVacationTable&Alert] 
(
    @VacationDate DATETIME, 
    @VacationType NVARCHAR(MAX), 
    @VacationTypeID INT, 
    @StaffCode NVARCHAR(4), 
    @StaffName NVARCHAR(MAX), 
    @Notes NVARCHAR(MAX), 
    @FTE FLOAT, 
    @CreatedBy NVARCHAR(MAX), 
    @CreatedDate DATETIME 
) 
as 
begin 

    insert tblVacationRecords 
    (
     VacationDate 
     , VacationType 
     , VacationTypeID 
     , StaffCode 
     , StaffName 
     , Notes 
     , FTE 
     , CreatedBy 
     , CreatedDate 
    ) 
    values 
    (
      @VacationDate, 
      @VacationType, 
      @VacationTypeID, 
      @StaffCode, 
      @StaffName, 
      @Notes, 
      @FTE, 
      @CreatedBy, 
      @CreatedDate 
    ) 

回答

0

不知道如何在外壳之间使用。不过,我建议你看看表值参数:http://www.techrepublic.com/blog/the-enterprise-cloud/passing-table-valued-parameters-in-sql-server-2008/

+0

如果我添加startdate和enddate,可以在proc中包含datediff以计算预订的日期吗? – GPH

+0

在存储过程中,您基本上可以执行任何t-sql操作。我提供的是你准备应用程序中的数据范围,将其放入表变量,然后传递给存储过程。 – athabaska