>I have many many column that are char(36) imported from VFP that have been constructed to be cast as UID.
>
>For the most part they convert fine when I
>
>ALTER TABLE tblname
>ALTER COLUMN colname Uniqueidentifier
>GO
>
>However on the four or five that fail, all I get is
>
>Conversion failed when converting from a character string to uniqueidentifier.
>
>but there are half a million rows, so I don't know where my upsizer is failing to catch a badly formed GUID(36)
>
>Is there a tsql syntax that would be something like (forgive the bad pseudocode but you get the idea)
>
>SELECT success = CAST(cid as Uniqueidentifier) from ACCOUNT_CREDITS where success = false
>
>I need to know which row it chokes on. Could probably write an iteration but seems there must be a set based way to do this.
>
>TIA
In SQL Server 2012 try a new TRY_CAST function. In prior versions there is nothing, unfortunately, to help.
If it's not broken, fix it until it is.
My Blog