从字符串转换为uniqueidentifier时转换失败

本文关键字:转换 失败 uniqueidentifier 字符串 | 更新日期: 2023-09-27 18:01:13

请注意,目前我正试图通过C#ADO.NET执行以下INSERT命令,但收到了上述错误:

INSERT INTO tblStampAnnotation ([StampAnnotationID],[Title],[Subject],[Content],[Author],[Date],[LinkedDocumentsID],[PageNumber],[Colour]) VALUES('{6b15a625-b967-4d3b-9ee3-34f64633f469}','test title','test subject','test content','test author',GETDATE(),'{475f30a1-142f-4fd5-b783-598d838559de}',1,Null)

在此处找到一个小程序来检查GUID是否正确:http://www.devx.com/vb2themax/Tip/18293

当我运行该程序时,它指示{6b15a625-b967-4d3b-9ee3-34f64633f469}和{475f30a1-142f-4fd5-b783-598d838559de}都是GUID。有人有什么建议来确定我收到这个错误的原因吗?TIA。

更新:

谢谢你的建议,鲍勃;然而,当我使用以下命令时,我仍然会得到相同的错误:

INSERT INTO tblStampAnnotation ([StampAnnotationID],[Title],[Subject],[Content],[Author],[Date],[LinkedDocumentsID],[PageNumber],[Colour]) VALUES('6b15a625-b967-4d3b-9ee3-34f64633f469','test title','test subject','test content','test author',GETDATE(),'475f30a1-142f-4fd5-b783-598d838559de',1,Null)

更新2:请注意,我使用的是SQL Server 2008。

更新3:这越来越奇怪了。当我使用NEWID((时,我仍然收到相同的错误:

INSERT INTO tblStampAnnotation ([StampAnnotationID],[Title],[Subject],[Content],[Author],[Date],[LinkedDocumentsID],[PageNumber],[Colour]) VALUES(NEWID(),'test title','test subject','test content','test author',GETDATE(),NEWID(),1,Null)

从字符串转换为uniqueidentifier时转换失败

您应该从GUID值中删除大括号{}。

'6b15a625-b967-4d3b-9ee3-34f64633f469'

事实证明,我使用右键单击数据库->任务…->从另一个数据库复制了这个表导入数据,然后我得到uniqueidentifier错误。为了解决这个问题,我删除了该表,并使用"New table…"设计器重新创建了它,在我尝试了相同的第一个INSERT命令后,它运行良好,所以当我使用import复制它时,发生了一些奇怪的事情。感谢大家的建议。