我需要将本地 SQL Server 2017 数据库迁移到 Azure SQL 数据库,我面临着一些挑战,因为有很多限制要通过。
特别是,由于 Azure SQL 数据库仅在 UTC 时间(无时区)中工作并且我们需要本地时间,因此我们必须更改数据库中GETDATE()
任何地方的使用,这已证明比我预期的要多。
我创建了一个用户定义的函数来获取适用于我的时区的本地时间:
CREATE FUNCTION [dbo].[getlocaldate]()
RETURNS datetime
AS
BEGIN
DECLARE @D datetimeoffset;
SET @D = CONVERT(datetimeoffset, SYSDATETIMEOFFSET()) AT TIME ZONE 'Pacific SA Standard Time';
RETURN(CONVERT(datetime,@D));
END
我遇到的问题是GETDATE()
在每个视图、存储过程、计算列、默认值、其他约束等中实际更改此函数。
实施此更改的最佳方式是什么?
我们处于托管实例的公共预览版中。它仍然有同样的问题GETDATE()
,所以它对这个问题没有帮助。迁移到 Azure 是一项要求。这个数据库总是在这个时区使用(并将被使用)。