我有一个需要存储过程值的临时表。所以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
答案 0 :(得分:2)
是。创建临时表,并在没有来自您的sproc的表示的添加日期列中放置getdate()的默认值约束或您需要的任何日期公式。在insert语句中明确指定列并省略日期列,它应该工作。随着行的添加,默认值约束将启动并为您填充该列。
示例:
create table #tmp (c1 int, c2 int, dt datetime default(getdate()) )
insert into #tmp
(c1, c2)
exec mysproc