gpt4 book ai didi

sql-server - SQL Server 序列设置当前值

转载 作者:行者123 更新时间:2023-12-02 22:19:50 24 4
gpt4 key购买 nike

我正在使用 SQL Server 2012 (v11.0.2100),我想创建一个以随机(动态)数字开头的序列,但我无法做到这一点,我也努力寻找一个好的解决方案为此,但我还没有找到令我满意的东西。

我尝试过但失败的案例:

 DECLARE @sth bigint

SET @sth = 1000

ALTER SEQUENCE StreamEntrySequence
RESTART WITH @sth;

错误:

Incorrect syntax near '@sth'

一个丑陋的解决方案

 declare @sth bigint;
declare @i bigint;

SET @sth = 100000 ;

while @i<@sth;
BEGIN
SET @i= next value for StreamEntrySequence;
END

还有其他方法可以将当前值或起始值设置为随机值吗?也许使用服务器程序?

最佳答案

正如已经提到的,这将需要动态 SQL,因为 alter sequence restart 参数需要一个常量。

你可能会做这样的事情,然后:

DECLARE @sth bigint;
SET @sth = 1000;
DECLARE @sql nvarchar(max);
SET @sql = N'ALTER SEQUENCE StreamEntrySequence RESTART WITH ' + cast(@sth as nvarchar(20)) + ';';
EXEC SP_EXECUTESQL @sql;

关于sql-server - SQL Server 序列设置当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27135200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com