Microsoft SQL Server 2014 - 12.0.2269.0 (X64) 10 июня 2015 г. 03: 35: 45
Express Edition (64-разрядная версия) в Windows NT 6.1 (сборка 7601: пакет обновления 1)
Язык: Português (Бразилия)
При создании сценария для добавления данных в SQL Server 2014, если в таблицах есть столбцы типа datetime
, что приводит к ошибке при попытке запустить этот сценарий позднее для той же базы данных.
Сценарий, созданный самой «Microsoft SQL Server Management Studio»:
USE [BancoTeste]
GO
DELETE FROM [dbo].[Vendas]
GO
SET IDENTITY_INSERT [dbo].[Vendas] ON
GO
INSERT [dbo].[Vendas] ([Codigo], [Data])
VALUES (8, CAST(N'2019-10-29 00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Vendas] ([Codigo], [Data])
VALUES (11, CAST(N'2019-10-29 00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Vendas] ([Codigo], [Data])
VALUES (12, CAST(N'2019-10-29 00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Vendas] ([Codigo], [Data])
VALUES (13, CAST(N'2019-10-29 00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Vendas] ([Codigo], [Data])
VALUES (14, CAST(N'2019-10-29 00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Vendas] ([Codigo], [Data])
VALUES (15, CAST(N'2019-10-29 00:00:00.000' AS DateTime))
GO
SET IDENTITY_INSERT [dbo].[Vendas] OFF
GO
При попытке запустить этот скрипт SQL Server выдает следующее сообщение об ошибке:
Преобразование типа данных nvarchar в тип данных datetime привело к значению вне допустимого диапазона. .
Если я изменю сгенерированный скрипт на дату в формате, характерном для моего региона:
INSERT [dbo].[Vendas] ([Data]) VALUES (CAST('29/10/2019' AS DateTime))
Работает нормально. Приводит меня к мысли, что это проблема региона или языка.
Очень странно (не говоря уже о комичности)! SQL не может обработать собственный скрипт.
Любые советы будут приветствоваться.