如何动态确定要建立的表的表名?

syq8107 2003-10-16 04:51:19
我想要一个程序自动建立表,比如以当月来命名这个表,即2003年10月建立一个表,表名为200310,到了11月份程序就会自动建立另一个表名为200311的表?如何实现动态确定表名呢?
...全文
66 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-10-16
  • 打赏
  • 举报
回复
--用作业就行了:


--创建自动创建表的存储过程
create proc p_createtb
as
declare @sql varchar(8000)
set @sql='create table '
+convert(varchar(6),getdate(),112)+'(col1 int)'
exec(@sql)
go

--创建作业
exec msdb..sp_add_job @job_name='按月自动创建表的数据处理'

--创建作业步骤
declare @sql varchar(8000) --数据处理命令
declare @dbname varchar(250)

select @sql='p_createtb'
,@dbname=db_name()

exec msdb..sp_add_jobstep @job_name='按月自动创建表的数据处理',
@step_name = '数据处理',
@subsystem = 'TSQL',
@database_name=@dbname,
@command = @sql,
@retry_attempts = 5, --重试次数
@retry_interval = 5 --重试间隔

--创建调度
EXEC msdb..sp_add_jobschedule @job_name = '按月自动创建表的数据处理',
@name = '时间安排',
@freq_type = 16, --每天,8 每周,16 每月
@freq_interval = 1,
@active_start_time = 17000 --下午17:00:00分执行



yujohny 2003-10-16
  • 打赏
  • 举报
回复
declare @tablename nvarchar(6)
set @tablename=cast(year(getdate() as nvarchar)+
right('0'+cast(month(getdate()) as nvarchar),2)
exec('create table '+@tablename+'(col1 int,col2,int)')
pengdali 2003-10-16
  • 打赏
  • 举报
回复
你的数据库服务器-》企业管理器-》管理-》SQL Server 代理-》作业-》新建作业,按照要求填就可以了,在“步骤”的“命令”中填写你要执行的存储过程或语句,在“调度”里面填写什么时间执行
pengdali 2003-10-16
  • 打赏
  • 举报
回复
declare @a char(6)
set @a=convert(char(6),getdate(),112)

exec('create table ['+@a+'] (a int)')
1.1. 建准则
建立数据库必须通过DBA完成:
l 每张必须有一个主键。
l 由设计人员提供建的语句。
l 由设计人员提供及字段的中文注释。
l 由DBA与设计人员加入物理存储参数。
l 由DBA确定数据空间及索引空间的分配。
l 如果一个的字段引用其它的字段,必须加入外键约束。
l DBA必须清楚每一个字段的含意。
是否有外键
是否可以为空null
1.2. 注意事项
l 索引
每一张必须有一个主键 <>_pk
若干外键索引 <>_fk_<数字>
若干其它索引 <>_<数字>
l 数据类型
定义合适的数据类型,注意 例如:
amount number(9,2)示一供可以存放9个数字,其中小数点后有2位。
2. 数据库的命名
l 的长度最多20个字符(需然oracle允许最大30个字符)。
l 只能用字母数字及下划线。
l 的命名规则
TAB_ 业务,一般会记录业务发生的信息。
TABF_ 值,只有两个字段, 此类不经常变化。用于应用程序的变量取值
TMP_ 临时
日志
日志以_log结尾,一般志可以有一段时间之后,进程备份,删除其中一些时间较长的数据。
周期备份
6. TABY_字符串_YYMM:每年清空的周期。YY建立年份,MM清除的月份。
7. TABM_字符串_MMDD:每月清空的周期。MM建立月份,DD清除的日期。
8. TABW_字符串_MMWD:每周清空的周期。MM建立月份,清除的周(1-4)及天(1-7)。
9. TABD_字符串_DDHH:每天清空的周期。DD建立日期,清除的时间(01-24)。
12. 字符串_BAK:数据备份(应用程序不得使用

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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