请问这样的存储过程怎么写?
我第一次用存储过程,不太明白
就是每月一号一点将表a(name char,id int 4) 的名字改成上一个月的名字命名的表(如tab200702),然后再创建一张表a .多谢大侠啊。
[解决办法]
定时操作需要用JOB,改表名用SP_RENAME。
[解决办法]
create proc test
AS
declare @name varchar(09),@sql varchar(1000)
select @name= 'tab '+convert(char(06),getdate(),112)
set @sql= 'if exists (select 1 from sysobjects where xtype= ' 'u ' ' and [name]= ' ' '+@name+ ' ' ') drop table '+@name+ ' select * into '+@name+ ' from a truncate table a '
exec(@sql)
GO
[解决办法]
建立作业每月一号一点定时执行存储过程PU_A~~~
CREATE TABLE A(NAME NCHAR(10),ID INT)
INSERT A SELECT '李四 ',9
SELECT * FROM A
GO
CREATE PROC PU_A
AS
BEGIN
DECLARE @YEAR_MONTH NCHAR(9)
SELECT @YEAR_MONTH= 'TAB '+CONVERT(NCHAR(6),DATEADD(MONTH,-1,GETDATE()),112)
--SELECT @YEAR_MONTH
EXEC SP_RENAME 'A ',@YEAR_MONTH
CREATE TABLE A(NAME NCHAR(10),ID INT)
END
GO
EXEC PU_A
GO
SELECT * FROM A
SELECT * FROM TAB200702
GO
DROP PROC PU_A
DROP TABLE TAB200702
DROP TABLE A