Ich muss eine lokale SQL Server 2017-Datenbank auf eine Azure SQL-Datenbank migrieren und stehe vor einigen Herausforderungen, da einige Einschränkungen zu beachten sind.
Insbesondere, da eine Azure SQL-Datenbank nur in UTC-Zeit (keine Zeitzonen) funktioniert und wir die Ortszeit benötigen, müssen wir die Verwendung von GETDATE() überall in der Datenbank ändern , was sich als arbeitsintensiver herausgestellt hat, als ich erwartet hatte.
Ich habe eine benutzerdefinierte Funktion erstellt, um die Ortszeit zu ermitteln, die für meine Zeitzone korrekt funktioniert:
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
Das Problem, mit dem ich Probleme habe, besteht darin, GETDATE()diese Funktion in jeder Ansicht, gespeicherten Prozedur, berechneten Spalten, Standardwerten, anderen Einschränkungen usw. zu ändern .
Was wäre der beste Weg, um diese Änderung umzusetzen?
Wir befinden uns in der öffentlichen Vorschau von verwalteten Instanzen . Es hat immer noch das gleiche Problem GETDATE(), daher hilft es bei diesem Problem nicht. Der Wechsel zu Azure ist eine Voraussetzung. Diese Datenbank wird immer in dieser Zeitzone verwendet (und wird auch verwendet).
