微软Server 2014 - 12.0.2269.0 (X64) 2015年6月10日03:35:45
Windows NT 6.1上的快速版(64位) (Build 7601: Service Pack 1)
语言:葡萄牙语(巴西)
在生成用于向Server 2014添加数据的脚本时,如果表中有类型为datetime的列,则会导致稍后在同一个数据库上运行此脚本时出错。


由“”本身生成的脚本:
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当试图运行此脚本时,Server将引发以下错误消息:
将nvarchar数据类型转换为日期时间数据类型的
会导致超出范围的值。

如果我将生成的脚本更改为特定于我的区域的格式的日期:
INSERT [dbo].[Vendas] ([Data]) VALUES (CAST('29/10/2019' AS DateTime))正常工作。让我相信这是一个地区或语言问题。
很奇怪(更不用说滑稽了)!SQL无法处理自己的脚本。
任何小贴士都会受到欢迎。
发布于 2020-03-07 08:08:37
添加
SET DATEFORMAT ymd在脚本的开头
https://stackoverflow.com/questions/58614064
复制相似问题