参考文章:http://www.w3school.com.cn/sql/sql_select_into.asp
---------------------------------------------------------------------------------------------------------------
为什么要修改数据库表的创建时间?因为有时候我们要用别人的数据库,又不想
被老师发现哈。众所周知,SQL2005及其以后的版本数据库,已经不支持直接修改
数据库表的创建时间了,当然查看创建时间还是可以的,这如何是好呢?我在网上
查了很久,也没发现什么好的方法,真是气愤。
---------------------------------------------------------------------------------------------------------------
既然不支持直接修改,我们就曲线救国吧,我们用select into语句创建表的一个副本,
这个表的副本的创建时间就是当前时间了,然后我们把原来的表删除,把新表的名称
改成和原来的一样,不就可以间接修改表的创建时间了吗?哈哈,说干就干。
------------------------------------------------------------------------------------------------------------------------
友情提醒:在进行以下操作前,建议先备份一下数据库,以免出意外,别说我没提醒你哈。
----------------------------------------------------------------------------------------------------------------------
先看一下我的数据库有三张表,我以修改表【GeShou】为例子,其它的照搬即可:
------------------------------------------------------------------------------------------------------------------------------------
1.先查看一下表【GeShou】的创建时间:
select
name 表名,
crdate 创建时间,
refdate 保留时间
from sysobjects
where
name='GeShou' and xtype ='U' --U表示用户表
//结果如下图所示,好家伙,竟然是2008年创建的。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.创建表的副本:
--创建表GeShou的副本
select * into GeShou2 from GeShou
DROP TABLE GeShou --删除旧表
--将表的副本的名字改为原来表的名字
EXEC sp_rename GeShou2,GeShou
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3.查看新表的创建时间:
select
name 表名,
crdate 创建时间,
refdate 保留时间
from sysobjects
where
name='GeShou2' and xtype ='U' --U表示用户表
//结果截图如下,注:新表的名字我在这里没有更改,请根据实际情况进行更改。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4.经过试验,使用这种方法,不能将旧表的主键设置给拷贝过来,所以请手动设置新表的主键,
有外键的话,也别忘了设计哈。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5.如果我们想要吧表复制到另一个数据库中,如何做呢?SQL语句如下:
select * into
[KTV2].[dbo].[GeShou]
from GeShou --把表GeShou复制到数据库KTV2中,新表的名字也是GeShou
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
您的十分满意是我追求的宗旨。
您的一点建议是我后续的动力。