2009-02-13 32 views
2

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

由于我给SP调用了3次,每次都有不同的日期时间,我不能只更新整个临时表。

有什么建议吗?

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

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

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

    SET @[email protected] 
+0

你能后的你现在是如何这样做的例子吗? – 2009-02-13 22:45:08

+0

请添加一些示例数据:你如何打电话给SP,以及你想看什么。 – Quassnoi 2009-02-13 22:45:09

回答

2

是的。创建临时表,并在添加日期列中没有代表从你的存储过程放置一个默认值约束getdate()或任何你需要的日期公式。在插入语句中明确指定列并省略日期列,它应该工作。随着行的添加,默认值约束将启动并为您填充该列。

例如:

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

insert into #tmp 
(c1, c2) 
exec mysproc 
相关问题