Problème: Convertir directement une colonne VARCHAR
contenant des identificateurs uniques sans trait d'union en UNIQUEIDENTIFIER
Le type de données dans SQL Server entraîne souvent des erreurs. Les techniques de conversion standard échouent en raison des traits de traits manquants.
Solution: Cette requête SQL efficace résout le problème en insérant manuellement les tirets dans la chaîne VARCHAR
avant de couler:
<code class="language-sql">DECLARE @uuid VARCHAR(50) SET @uuid = 'a89b1acd95016ae6b9c8aabb07da2010' SELECT CAST( SUBSTRING(@uuid, 1, 8) + '-' + SUBSTRING(@uuid, 9, 4) + '-' + SUBSTRING(@uuid, 13, 4) + '-' + SUBSTRING(@uuid, 17, 4) + '-' + SUBSTRING(@uuid, 21, 12) AS UNIQUEIDENTIFIER)</code>
Comment cela fonctionne: la requête extrait les sous-chaînes de l'entrée VARCHAR
(@uuid
), plaçant stratégiquement des tirets pour reconstruire le format standard UNIQUEIDENTIFIER
(xxxxxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxx-xxxx-xxxxxxxxxxxxxx-xxxx-xxxxxxxxxxxxxx-xxxx-xxxxxxxxxxxxxxx-xxxx-xxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxx-oxxxxxxxxxxxxxxxxxxxx ). La chaîne résultante est ensuite coulée au type de données UNIQUEIDENTIFIER
. Cette méthode garantit une conversion précise même lorsqu'il s'agit d'une entrée sans dynas.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!