我可以在临时表中插入存储过程的结果加上另一个值吗?

时间:2009-02-13 22:39:40

标签: sql tsql

我有一个需要存储过程值的临时表。所以SP在临时表中插入3列,然后我想在不修改SP的情况下为每一行添加日期时间。

由于我每次拨打SP 3次,每次使用不同的日期时间,我不能只更新整个临时表。

任何建议?

DECLARE @temp TABLE
(
    id INT IDENTITY(1,1),
    Name VARCHAR(150),
    Address VARCHAR(25),
    Date DATETIME
)

WHILE (@count>=@daysBack)
BEGIN
    SET @date=DATEADD(dd, @count, GETDATE())
    INSERT INTO @temp (Name,Address)
        EXEC[dbo].StoredProc@date

--I Want to check for Null and insert the date there
    Update @temp SET Date=@date WHERE Date='' 

    SET @count=@count-1

1 个答案:

答案 0 :(得分:2)

是。创建临时表,并在没有来自您的sproc的表示的添加日期列中放置getdate()的默认值约束或您需要的任何日期公式。在insert语句中明确指定列并省略日期列,它应该工作。随着行的添加,默认值约束将启动并为您填充该列。

示例:

create table #tmp (c1 int, c2 int, dt datetime default(getdate()) )

insert into #tmp
(c1, c2)
exec mysproc