如何创建一个存储过程,该过程从表中获取值并将它们插入到新表

时间:2016-12-09 12:05:02

标签: sql sql-server

如何在SQL中创建存储过程,该存储过程接受来自表的输入的name,area,startdate,enddate,并将名称,区域和日期插入表中(具有3列名称,区域,日期),用于startdate之间的每个日期并结束。

2 个答案:

答案 0 :(得分:0)

这是不可能的。您无法在SQL Server中的函数中执行DDL和DML操作。

正如戈登所说,你需要使用存储过程来实现这一目标。

这是一个以

开头的例子

http://www.sqlinfo.net/sqlserver/sql_server_stored_procedure_INSERT.php

答案 1 :(得分:0)

DECLARE @name NVARCHAR(20) = 'name';
DECLARE @area NVARCHAR(20) = 'area';
DECLARE @startDate DATE = '2016-11-30';
DECLARE @endDate DATE = '2016-12-30';

DECLARE @currentDate DATE = @startDate;

SELECT
    @currentDate AS Date
INTO
    #dates;

WHILE(@currentDate < @endDate)
    BEGIN
        SET @currentDate = DATEADD(d, 1, @currentDate);
        INSERT INTO #dates
        VALUES( @currentDate);
    END;

SELECT
    @name,
    @area,
    *
FROM
    #dates;

您可以将变量作为参数获取,并使用最后一个select语句来创建新表。