从vb.net应用程序传递的GUID在SQL Server数据库表中是唯一的吗?

时间:2014-09-04 11:11:56

标签: sql asp.net sql-server vb.net sql-server-2012

我想在我的VB.Net应用程序中创建一个GUID并将其保存在SQL Server数据库表中,其中列被定义为UNIQUEIDENTIFIER类型。代码如下:

 Using conn As New SqlConnection(connectionString)
    conn.Open()
    Using trans As SqlTransaction = conn.BeginTransaction()
        Using cmd As SqlCommand = conn.CreateCommand()
            cmd.Transaction = trans
            cmd.CommandText = "INSERT INTO [MYTABLE] ([GuidValue]) VALUE @guidValue;"
            cmd.Parameters.AddWithValue("@guidValue", Guid.NewGuid())
            cmd.ExecuteNonQuery()
            trans.Commit()
        End Using
    End Using
End Using

GUID是否在数据库表中是唯一的,因为我从VB.Net应用程序传递它而不是在SQL服务器本身中生成它(使用NEWID()NEWSEQUENTIALID()函数)?

如果它在数据库中是唯一的,我宁愿在我的VB.net应用程序中生成GUID。否则我会在SQL服务器中生成它并将其读回应用程序。

任何建议都会非常感激。提前谢谢大家。

1 个答案:

答案 0 :(得分:3)

根据Microsoft,GUID的重复概率非常低,并且#34;

但是你应该看看here

有利有弊