ฉันต้องโยกย้ายฐานข้อมูล 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 เป็นข้อกำหนด ฐานข้อมูลนี้ใช้ (และจะใช้) ตลอดเวลาในเขตเวลานี้