我需要将本地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().
实施此更改的最佳方法是什么?
我们在Managed Instances的公开预览中.它仍然与GETDATE()有相同的问题,所以它对这个问题没有帮助.迁移到Azure是一项要求.始终在此时区中使用(并将使用)此数据库.