黑马程序员技术交流社区

标题: 创建表时的问题 [打印本页]

作者: 赵小江    时间: 2013-1-2 20:47
标题: 创建表时的问题
用CREATE TABLE创建新表时如果想用getdate()当前日期作为表名怎么解决?
作者: 刘文超    时间: 2013-1-2 20:53
本帖最后由 刘文超 于 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, 下载次数: 87)

fffffffff.jpg

作者: 赵小江    时间: 2013-1-3 10:57
刘文超 发表于 2013-1-2 20:53
花了20分钟写好这几条语句,可以达到lz的要求。
直接复制过去可以执行,并得到截图的表,是按照系统时间命 ...

谢谢,写的很清楚.我记得以前写存储过程的时候可以直接用EXEC写的,现在忘了怎么用.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2