データベースに格納する、またはデータベースから取得するグローバル一意識別子 (GUID) を表します。
この型のすべてのメンバの一覧については、SqlGuid メンバ を参照してください。
System.Object
System.ValueType
System.Data.SqlTypes.SqlGuid
Public Structure SqlGuid
Implements INullable, IComparable
[C#]
public struct SqlGuid : INullable, IComparable
[C++]
public __value struct SqlGuid : public INullable, IComparable
[JScript] JScript では、.NET Framework の構造体を利用することができます。ただし、独自に定義することはできません。
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
Guid と SqlGuid では、 CompareTo メソッドの実装が異なります。 SqlGuid は、SQL Server の動作を使用して CompareTo を実装し、値の最後の 6 バイトだけを評価します。一方、 Guid は、16 バイトを評価します。この動作の違いにより、SQL Server と DataSet の間で、ソート操作の実行内容が一致しないことがあります。この動作の違いを次の C# の例で示します。
using System;
using System.Data.SqlTypes;
using System.Collections;
class Test {
public static void Main() {
try {
ArrayList a = new ArrayList();
a.Add(new Guid("3AAAAAAA-BBBB-CCCC-DDDD-2EEEEEEEEEEE"));
a.Add(new Guid("2AAAAAAA-BBBB-CCCC-DDDD-1EEEEEEEEEEE"));
a.Add(new Guid("1AAAAAAA-BBBB-CCCC-DDDD-3EEEEEEEEEEE"));
Console.WriteLine("--Unsorted Guids--");
foreach (Guid g in a) {
Console.WriteLine("{0}", g);
}
a.Sort();
Console.WriteLine("--Sorted Guids--");
foreach (Guid g in a) {
Console.WriteLine("{0}", g);
}
a.Clear();
a.Add(new SqlGuid("3AAAAAAA-BBBB-CCCC-DDDD-2EEEEEEEEEEE"));
a.Add(new SqlGuid("2AAAAAAA-BBBB-CCCC-DDDD-1EEEEEEEEEEE"));
a.Add(new SqlGuid("1AAAAAAA-BBBB-CCCC-DDDD-3EEEEEEEEEEE"));
a.Sort();
Console.WriteLine("--Sorted SqlGuids--");
foreach (SqlGuid g in a) {
Console.WriteLine("{0}", g);
}
} catch (Exception exc) {
Console.WriteLine(exc);
}
}
}
この例では、次の結果が生成されます。
--Unsorted Guids--
3AAAAAAA-BBBB-CCCC-DDDD-2EEEEEEEEEEE
2AAAAAAA-BBBB-CCCC-DDDD-1EEEEEEEEEEE
1AAAAAAA-BBBB-CCCC-DDDD-3EEEEEEEEEEE
--Sorted Guids--
1AAAAAAA-BBBB-CCCC-DDDD-3EEEEEEEEEEE
2AAAAAAA-BBBB-CCCC-DDDD-1EEEEEEEEEEE
3AAAAAAA-BBBB-CCCC-DDDD-2EEEEEEEEEEE
--Sorted SqlGuids--
2AAAAAAA-BBBB-CCCC-DDDD-1EEEEEEEEEEE
3AAAAAAA-BBBB-CCCC-DDDD-2EEEEEEEEEEE
1AAAAAAA-BBBB-CCCC-DDDD-3EEEEEEEEEEE
必要条件
名前空間: System.Data.SqlTypes
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: System.Data (System.Data.dll 内)