如何在SQL中创建存储过程,该存储过程接受来自表的输入的name,area,startdate,enddate,并将名称,区域和日期插入表中(具有3列名称,区域,日期),用于startdate之间的每个日期并结束。
答案 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语句来创建新表。