循环插入数据,实现日期连续(每天都有数据记录),存储过程如下:
USE [Q3_DB]
GO
/****** Object: StoredProcedure [dbo].[t_workshop_work_list_AutoAddData] Script Date: 04/25/2014 13:42:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: lyf
-- Create date: 2014-4-23 17:17
-- Description: 循环插入数据,实现工作日志表中创建日志时间create_time连续
-- =============================================
ALTER PROCEDURE [dbo].[t_workshop_work_list_AutoAddData]
--@workshop_work_list_key uniqueidentifier
AS
declare @count int --表中数据量
declare @mindata datetime --日志最早创建时间
declare @have_count int --符合条件的数据量
begin
set @count=(select COUNT(*) from dbo.t_workshop_work_list)
set @mindata=(select MIN(create_time)+1 from dbo.t_workshop_work_list)
if @count>0 --当表中有数据时
begin
while CONVERT(nvarchar(11),@mindata,120)<CONVERT(nvarchar(11),GETDATE(),120)
begin
set @have_count=(select COUNT(*) from dbo.t_workshop_work_list
where CONVERT(nvarchar(11), create_time,120)=CONVERT(nvarchar(11), @mindata,120))
if @have_count=0 --当日期@mindata在表中不存在时,执行插入数据
begin
insert into dbo.t_workshop_work_list (workshop_work_list_key,status, update_time, create_time)
values(NEWID(),1,CONVERT(nvarchar(11), @mindata,120),CONVERT(nvarchar(11), @mindata,120));
end
set @mindata=@mindata+1
end
end
end