2012-02-25 63 views
1

是否有可能修改表的表的创建日期?我们在右击table > properties > Created datesys.tables.create_date时看到的日期。修改表的创建日期

即使创建了表个月前,我希望它看起来像他们今天被创造。

+3

你为什么要这么做? – Mat 2012-02-25 16:54:03

+0

愚弄我的大学,相信我已经从零开始创建数据库......以及他们检查日期等等,不想再次构建完整的数据库 – Ketan 2012-02-25 17:42:01

回答

1

不超过你可以改变你的生日,你为什么会想?

你可以只

select * into #tmp from [tablename] 
drop table [tablename] 
select * into [tablename] from #tmp 

这将重建表和保护结构(一个点)。您可以编写一个新表格,复制数据然后删除和重命名。如上。

+0

我喜欢生日类比。和一些可能工作(只要他们想改变它到今天) – 2012-02-25 17:24:57

+0

+1谢谢你,我用的脚本:) – Ketan 2012-02-25 17:43:04

+0

没问题,你的欢迎。 – 2012-02-25 17:47:02

1

在SQL Server 2000中,您可以通过黑客与sp_configure选项的系统表做到这一点“允许更新”设置为1

这是不可能在SQL Server 2005及以上。从联机丛书:

此选项仍然存在于sp_configure存储过程, 虽然它的功能是在Microsoft SQL Server 2005 (设置不起作用)不可用。在SQL Server 2005中,不支持对 系统表的直接更新。

在2005年,我相信你可以通过使用dedicated administrator connection“游戏系统”,但我认为这是RTM后不久固定(或它需要一个跟踪标志或其他一些无证设置工作)。即使使用DAC,并设置为1 sp_configure选项,两个SQL Server 2005的SP4和SQL Server 2008 R2 SP1的产量尝试这样的:

Msg 259, Level 16, State 1 
Ad hoc updates to system catalogs are not allowed. 

你是谁试图愚弄,为什么?

编辑

现在,我们对为什么,你可以创建一个不依附于任何域的虚拟机,将时光倒流到任何你想要的日期,创建一个数据库,创造出更多的信息您的对象,备份数据库,将其复制到主机,并将其恢复。这些对象的create_date仍然应该反映早期的日期,尽管数据库本身可能不(我没有测试过)。

您可以通过改变时钟拨回到自己的系统上做到这一点,但我不知道如果我想用我的时钟一塌糊涂这种方式已经安装了SQL Server之后以及在什么会已创建对象在短时间内成为“未来”。 VM对我来说绝对看起来更安全。

+0

我的教授当然是因为我懒惰而拖延;) – Ketan 2012-02-25 17:43:44

+0

呵呵,我想我误解了。你希望教授认为你今天创建了数据库,而不是你一直在研究它。我会留下修改后的答案,以防万一有人想让他们的表看起来像老*而不是*更新*。 – 2012-02-25 17:51:15

相关问题