C# 如何从C或T-Sql中的给定GUID生成新GUID?
我想复制sqlserver表的行并插入到该表中,该表有以下字段:C# 如何从C或T-Sql中的给定GUID生成新GUID?,c#,sql,guid,uniqueidentifier,C#,Sql,Guid,Uniqueidentifier,我想复制sqlserver表的行并插入到该表中,该表有以下字段: Id :uniqueidentifier ParentId: uniqueidentifier Name: varchar(50) Sort: float UserId: uniqueidentifier Id和ParentId现有关系 我想出了一个解决办法: Insert into table1 (Id, ParentId,Name,Sort) Select dbo.gen(id,1) as id, dbo.gen(Paren
Id :uniqueidentifier
ParentId: uniqueidentifier
Name: varchar(50)
Sort: float
UserId: uniqueidentifier
Id和ParentId现有关系
我想出了一个解决办法:
Insert into table1 (Id, ParentId,Name,Sort)
Select dbo.gen(id,1) as id, dbo.gen(ParentId,1) as ParentId ,Name,Sort from table1
where UserId='XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
gen函数是从给定GUID生成新GUID的方法
以下是C描述,我们可以在CLR SQL Server用户定义函数中使用:
public Guid GenerateNewGuid(Guid from,int seed)
{
return .....
}
请帮助我如何实现此功能
如果你对我的情况有其他的解决办法,请告诉我
问候
JimGUID是一个全局唯一标识符,它不像AutoId那样,您可以只增加1 GUID应该是唯一的句点 只需创建一个新的:
public Guid GenerateNewGuid()
{
return Guid.NewGuid();
}
guid不是有序的或类似的东西。没有像newGuid=oldGuid+1这样的算法。您可以使用 如果你想了解序列使用的概念 NEWSEQUENTIALID是Windows UuidCreateSequential函数的包装器 然而,没有像兰德那样的种子盛宴 所以你的SQL变成了
Select NEWID() ...
您需要指定使用种子从现有guid创建新guid的算法,否则我们无法回答您的问题。@Daniel我想他是在问算法@V4Vendetta,是的,我要的是算法@V4Vendetta:好吧。。。但是没有…@All:好的,如果没有办法实现该算法,那么有没有办法解决复制表行的问题?这不能解决我的问题,注意:我需要复制数据字段的关系