我想在我的.net应用程序中使用GUID,它使用SQL Server.我应该编写一个存储过程,在每个输入的记录上生成GUID,还是应该从应用程序直接生成它.
提出问题的原因(如果错误纠正了我):
我(作为/ pre)sume:
从数据库生成GUID时,您可以假设数据库会记住以前生成的GUID,因为应用程序很难记住它.
Lie*_*ers 25
SQL Server内置了GUID的创建.不需要为此编写单独的存储过程.
您可以使用
两个过程之间的关键区别在于,如果是主群集密钥,则应使用顺序GUID.
我不确定为什么你希望数据库引擎记住以前生成的GUID.
不,你的假设是错误的:数据库不会记住任何东西 - 所以从这个观点来看没有任何好处.
如果您在SQL Server中使用GUID作为主键/群集键,这是一个坏主意(请参阅此处,此处或此处为何情况),您至少应该使用该newsequentialid()函数作为默认约束那一栏.
CREATE TABLE YourTable(ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID())
Run Code Online (Sandbox Code Playgroud)
这样,数据库就会为你的PK生成伪顺序GUID,因此会产生使用GUID作为PK/CK至少可忍受的负面影响....
如果您没有使用GUID作为主键,那么我认为在服务器上创建GUID没有任何好处.
| 归档时间: |
|
| 查看次数: |
14445 次 |
| 最近记录: |