2012-06-27 21 views
1

是否可以自动将某些函数(用户定义/系统)应用于选定列,可以在模式级别绑定它。隐式地在表上的所有Select语句上应用函数 - SQL Server

我的方案是自动保存每个表中的记录时间记录,我已经使用getdate()作为这些列的默认值,它工作正常,直到我们有自己的主机。但是现在我们正在转向共享主机,并且不知道将来哪些时区服务器将被放置,我正在使用GETUTCDATE()来获取GMT时间。

由于很多程序/函数已经存在,我正在寻找一些东西,我不需要将UTC时间明确地转换为本地时间。

因此,我的Select * from MyTable应使用我创建的函数在固定的时区给我时间。

让我知道它是否可能以任何方式。

谢谢。

+0

没有答案..这是否意味着它根本不可能? – IamCP

回答

0

这并不完全清楚你想要做什么,但是没有办法替代SELECT声明所要求的东西:你在查询中要求的是你得到的。除非用相同名称的视图替换表格,但这可能不是最好的方法。

使用视图或函数仍然意味着您必须更改您的代码,那么为什么不只是将所有数据都写入UTC时间,然后在您的应用程序代码中进行转换? SQL Server不知道客户端的时区是什么,所以不可能在服务器端可靠地进行转换。除非客户端可能会将本地时区作为参数或在CONTEXT_INFO中发送到服务器,但不会有太大意义,因为无论如何,在客户端执行它都会更简单。

当然,在应用程序中处理它将为您提供更灵活,更强大的解决方案。

+0

即使我认为我所期待的不仅仅是SQL提供的。我现在需要修改我所有的程序和功能。不过谢谢。 – IamCP

相关问题