使用存储过程创建表

时间:2014-07-23 10:09:48

标签: sql stored-procedures sql-server-2008-r2

我正在尝试创建一个包含两列的表,其中一列应该是日期在2013年7月21日到今天之间的日期。使用sql server 2008r2并保持系统日期类型相同。

请有人指导我,因为我需要尽快这样做。

2 个答案:

答案 0 :(得分:0)

试试这个:

IF OBJECT_ID('TABLE_CREATION') IS NOT NULL
DROP PROCEDURE TABLE_CREATION
GO 

CREATE PROCEDURE TABLE_CREATION
AS
DECLARE @StartDate date;
DECLARE @i bigint;

SET @StartDate = '2001/01/01'
SET @i=1;

EXECUTE('
        if object_id(''table_name'') is not null
        drop table table_name

        create table table_name (column1_name date, column2_name varchar(max))
        WHILE @StartDate < getdate()
        BEGIN
             insert into table_name (column1_name, column2_name) VALUES (@StartDate,@i)
             SET @i=@i+1;
             SET @currentDate = dateadd(dd, 1, @currentDate)
        END
 ')

 GO

EXEC TABLE_CREATION

答案 1 :(得分:0)

这样的事情应该有效

DECLARE @currentDate datetime = Convert(datetime, '2013/07/21', 111)

WHILE @currentdate < getdate()
BEGIN
    INSERT INTO <your_table>
    (<your_date_column>)
    VALUES
    (@currentDate)

    SET @currentDate = dateadd(dd, 1, @currentDate)
END
GO