读书人

请教这样的存储过程如何写

发布时间: 2012-03-24 14:00:46 作者: rapoo

请问这样的存储过程怎么写?
我第一次用存储过程,不太明白
就是每月一号一点将表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

读书人网 >SQL Server

热点推荐