問題: SQL Server でハイフンなしの一意の識別子を含む VARCHAR
列を UNIQUEIDENTIFIER
データ型に直接変換すると、多くの場合エラーが発生します。ハイフンが欠落しているため、標準の変換手法は失敗します。
解決策: この効率的な SQL クエリは、キャストする前に VARCHAR
文字列にハイフンを手動で挿入することで問題を解決します。
<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>
仕組み: クエリは入力 VARCHAR
(@uuid
) から部分文字列を抽出し、戦略的にハイフンを配置して標準の UNIQUEIDENTIFIER
形式 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) を再構築します。 )。 結果の文字列は、UNIQUEIDENTIFIER
データ型にキャストされます。 この方法では、ハイフンのない入力を処理する場合でも正確な変換が保証されます。
以上がSQL Server でハイフンのない VARCHAR を UNIQUEIDENTIFIER に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。