【发布时间】:2019-12-05 17:10:07
【问题描述】:
我有一个表 (RPT.table1),其中包含从 ArcGIS Online 应用程序导出的数据。表中的一列 (GlobalID) 已导出为 nvarchar(255) 数据类型。在将此数据插入另一个表 (CFAdmin.table2) 之前,我需要将此列转换为 uniqueidentifier 数据类型。
GlobalID 列中的值曾经是唯一标识符,并且已经包含连字符 (B4A6AA96-42DF-48D9-A3E0-4C7F88ED3E1D)。
我尝试过使用
ALTER TABLE RPT.table1
ALTER COLUMN GlobalID uniqueidentifier;
在INSERT INTO 声明中
INSERT INTO CFAdmin.table2 (GlobalID)
SELECT CAST(GlobalID AS uniqueidentifier)
FROM RPT.table1;
这两种方法都会出错
消息 8169,第 16 级,状态 2,第 1 行
从字符串转换为唯一标识符时转换失败。
我对 SQL Server 比较陌生,我猜有一个非常简单的解决方案。
感谢阅读。
【问题讨论】:
-
您现有的值至少包含一个无法转换的值。选择 try_cast(GlobalID as uniqueidentifier) 为 null 的行以查找不可转换的值。然后决定如何进行。
-
这应该是答案,而不仅仅是评论
-
谢谢@DRich。你是对的,我有一个不可兑换的价值。还了解了非常方便的 try_cast。谢谢你们!
-
+ @SMor 以及
标签: sql sql-server uniqueidentifier sqldatatypes nvarchar