首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-03-24 
请问这样的存储过程怎么写?我第一次用存储过程,不太明白就是每月一号一点将表a(namechar,idint4)的名字改

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

热点排行