简单的存储过程。。。??

曲军昌 2013-02-19 03:35:55
创建一个存储过程,这个存储过程是创建表的,表的命名规则是固定的前缀(例如CS)+当前日期的年(例如2013)+月(02)语法是@tableName='CS_'+datename(YY,getdate())+datename(MM,getdate())
表的字段为(id,name)
主要的问题是我把比如说是以2月命名的这个表创建了之后,还在继续创建之后的6个月的表,也就是延续6个月,
在这个存储过程中一次性创建6个月的表,在3月份的时候进行判断,如果以3月份命名的表已经存在就不创建了如果不存在就继续创建,还要考虑到12月过后1月的时候就新加一年(如2014年)
该如何去写呢?求大神指教。。。。。
...全文
183 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
就是just4 2013-02-20
  • 打赏
  • 举报
回复
DECLARE @dt DATETIME
DECLARE @tb VARCHAR(50)
DECLARE @sql VARCHAR(2000)
SELECT @dt = '2013-02-01'

SELECT @tb = 'CS_'+datename(YY,@dt)+datename(MM,@dt)
SELECT @sql = 'create table ' + @tb + '(t1 varchar(50))'
IF OBJECT_ID(@sql) IS NULL EXEC(@sql)

DECLARE @i INT,@count INT
SELECT @i = 1,@count = 6
WHILE(@i <= @count)
BEGIN
	SELECT @tb = 'CS_'+datename(YY,DATEADD(mm,@i-1,@dt))+datename(MM,DATEADD(mm,@i-1,@dt))
	SELECT @sql = 'create table ' + @tb + '(t1 varchar(50))'
	IF OBJECT_ID(@sql) IS NULL EXEC(@sql)	
	SELECT @i = @i + 1
END
szm341 2013-02-19
  • 打赏
  • 举报
回复
set @tableName='CS_'+convert(varchar(6),getdate(),112) set @sql='if object_id(N'''+@tableName+''',N''U'') is not null begin crate table ... end' 写个while循环判断一下日期,设置年月的开始、截止变量
  • 打赏
  • 举报
回复
其实跟触发器一样的原理。去看看这个。储存器一直没有时间去写。 http://blog.csdn.net/sadasasdasd/article/details/8497046
-Tracy-McGrady- 2013-02-19
  • 打赏
  • 举报
回复
dateadd() 函数 object_id()函数 substring()函数 研究研究,下次就会了

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧