CREATE PROCEDURE PROC_INSERTREC_TRANSRECORDHIS
AS
BEGINdeclare @CurrentTime CHAR(14)
@CurrentTime = CAST(DATEADD(day, -30, GetDate())AS CHAR)INSERT INTO YW_TRANSRECORD_HIS
(
BEGINTIME,DEVICEID,TRANSBEGIN,TRANSCODE,TSOURCE,ZONECODE,
AGENTID,GRANT_NO,CALL_ID,RETURNCODE,RETURNMESSAGE
)
SELECT
BEGINTIME,DEVICEID,TRANSBEGIN,TRANSCODE,TSOURCE,ZONECODE,
AGENTID,GRANT_NO,CALL_ID,RETURNCODE,RETURNMESSAGE
FROM YW_TRANSRECORD
WHERE BEGINTIME < @CurrentTimeDELETE BEGINTIME,DEVICEID,TRANSBEGIN,TRANSCODE,TSOURCE,ZONECODE,AGENTID,GRANT_NO,CALL_ID,RETURNCODE,RETURNMESSAGE
FROM YW_TRANSRECORD
WHERE BEGINTIME < @CurrentTimeEND这个存储过程的主要目的是将YW_TRANSRECORD中的30天以前的记录导入到历史表YW_TRANSRECORD_HIS中,然后把YW_TRANSRECORD
中的对应记录删除,哪位大虾帮我看一下上面这个存储过程哪里出了问题,谢谢!
AS
BEGINdeclare @CurrentTime CHAR(14)
@CurrentTime = CAST(DATEADD(day, -30, GetDate())AS CHAR)INSERT INTO YW_TRANSRECORD_HIS
(
BEGINTIME,DEVICEID,TRANSBEGIN,TRANSCODE,TSOURCE,ZONECODE,
AGENTID,GRANT_NO,CALL_ID,RETURNCODE,RETURNMESSAGE
)
SELECT
BEGINTIME,DEVICEID,TRANSBEGIN,TRANSCODE,TSOURCE,ZONECODE,
AGENTID,GRANT_NO,CALL_ID,RETURNCODE,RETURNMESSAGE
FROM YW_TRANSRECORD
WHERE BEGINTIME < @CurrentTimeDELETE BEGINTIME,DEVICEID,TRANSBEGIN,TRANSCODE,TSOURCE,ZONECODE,AGENTID,GRANT_NO,CALL_ID,RETURNCODE,RETURNMESSAGE
FROM YW_TRANSRECORD
WHERE BEGINTIME < @CurrentTimeEND这个存储过程的主要目的是将YW_TRANSRECORD中的30天以前的记录导入到历史表YW_TRANSRECORD_HIS中,然后把YW_TRANSRECORD
中的对应记录删除,哪位大虾帮我看一下上面这个存储过程哪里出了问题,谢谢!
FROM YW_TRANSRECORD
WHERE BEGINTIME < @CurrentTime改为
DELETE FROM YW_TRANSRECORD WHERE BEGINTIME < @CurrentTime
@days int
AS
BEGIN
--插入
INSERT INTO YW_TRANSRECORD_HIS
(BEGINTIME,DEVICEID,TRANSBEGIN,TRANSCODE,TSOURCE,ZONECODE,AGENTID,GRANT_NO,CALL_ID,RETURNCODE,RETURNMESSAGE)
SELECT BEGINTIME,DEVICEID,TRANSBEGIN,TRANSCODE,TSOURCE,ZONECODE,AGENTID,GRANT_NO,CALL_ID,RETURNCODE,RETURNMESSAGE
FROM YW_TRANSRECORD WHERE datediff(dd,BEGINTIME,getdate())>@days
--删除
DELETE YW_TRANSRECORD WHERE datediff(dd,BEGINTIME,getdate())>@days
END --执行方法,30天以上的插入历史,删除记录
exec PROC_INSERTREC_TRANSRECORDHIS 30--30可用变量