Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从C或T-Sql中的给定GUID生成新GUID?_C#_Sql_Guid_Uniqueidentifier - Fatal编程技术网

C# 如何从C或T-Sql中的给定GUID生成新GUID?

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

我想复制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(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 .....
}
请帮助我如何实现此功能

如果你对我的情况有其他的解决办法,请告诉我

问候


Jim

GUID是一个全局唯一标识符,它不像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:好的,如果没有办法实现该算法,那么有没有办法解决复制表行的问题?这不能解决我的问题,注意:我需要复制数据字段的关系