A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵小江 中级黑马   /  2013-1-2 20:47  /  2038 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用CREATE TABLE创建新表时如果想用getdate()当前日期作为表名怎么解决?

2 个回复

倒序浏览
本帖最后由 刘文超 于 2013-1-2 21:30 编辑

花了20分钟写好这几条语句,可以达到lz的要求。
直接复制过去可以执行,并得到截图的表,是按照系统时间命名的哈。
不知道楼主会不会嫌我的代码过于繁琐哦。
sql语句:
  1. --声明表名这个变量 长度20可变
  2. declare @table_name varchar(20);
  3. --声明创建表的语句这个字符变量 长度100可变
  4. declare @mysql varchar(100);
  5. --将系统时间赋值给表名
  6. set @table_name=CONVERT(VARCHAR(10),GETDATE(),110);
  7. --将上边的表名变量加入到整个语句中(注意:"[]"的作用是我测试全数字的表名要加上才行)
  8. set @mysql='create table ['+@table_name+'](id int primary key,name varchar(20))';
  9. --执行将这条语句作为一个存储过程来执行,用exec
  10. exec(@mysql);
  11. --当然 你可以打印一下这条sql语句
  12. --print(@mysql);
复制代码

fffffffff.jpg (8.34 KB, 下载次数: 94)

fffffffff.jpg
回复 使用道具 举报
刘文超 发表于 2013-1-2 20:53
花了20分钟写好这几条语句,可以达到lz的要求。
直接复制过去可以执行,并得到截图的表,是按照系统时间命 ...

谢谢,写的很清楚.我记得以前写存储过程的时候可以直接用EXEC写的,现在忘了怎么用.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马