【发布时间】:2023-04-03 14:10:02
【问题描述】:
我有一个存储过程,我已将其安排为每晚午夜运行的作业。我希望存储过程在运行时将数据插入表中。我必须先创建表还是有办法在存储过程运行时创建表?我的第二个问题是:然后我需要一份工作来在每晚 11 点清除同一张表,然后在午夜再次运行存储过程。感谢您提供任何帮助。我很感激。
这是我的存储过程:
我已经创建了它运行成功的存储过程。我曾尝试使用 CREATE 和 INSERT INTO 但似乎都不起作用。
USE [TMWSUITE]
GO
/****** Object: StoredProcedure [dbo].[Wynne_DriverSnapshot] Script Date: 10/22/2019 6:35:18 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[Wynne_DriverSnapshot] as
WITH cte (mpp_id, mpp_firstname, mpp_lastname, mpp_status, mpp_fleet, mpp_terminal) as
(
Select mpp_id, mpp_firstname, mpp_lastname, mpp_status, mpp_fleet, mpp_terminal from manpowerprofile where mpp_terminationdt >= GETDATE()),
cte2 (lgh_number, lgh_startdate, lgh_enddate, lgh_outstatus, rn, lgh_driver1, lgh_class, lgh_class2) as
(
Select lgh_number, lgh_startdate, lgh_enddate, lgh_outstatus, ROW_NUMBER() OVER (PARTITION by lgh_driver1 order by lgh_number desc) as
rn, lgh_driver1, lgh_class1, lgh_class2 From legheader
)
Select mpp_id, mpp_firstname, mpp_lastname, mpp_status, mpp_fleet, mpp_terminal, lgh_number, lgh_startdate, lgh_enddate, lgh_outstatus, lgh_driver1, lgh_class, lgh_class2 from cte
left join cte2 on mpp_id = lgh_driver1 where rn = '1' and mpp_id NOT IN ('UNKNOWN','TESDR','TESDR2') order by mpp_id
我想用这个存储过程做 3 件事:1) 创建一个表,2) 运行存储过程,3) 向表中插入数据。
【问题讨论】:
-
您使用的是哪个 dbms? (上面的代码是特定于产品的。)
标签: sql-server tsql stored-procedures ddl create-table