我正在使用 SQL Server 2012 (v11.0.2100),我想创建一个以随机(动态)数字开头的序列,但我无法做到这一点,我也努力为此找到一个好的解决方案,但是我还没有找到令我满意的东西。
我尝试过但失败的案例:
DECLARE @sth bigint
SET @sth = 1000
ALTER SEQUENCE StreamEntrySequence
RESTART WITH @sth;
Error :
“@sth”附近的语法不正确
一个丑陋的解决方案
declare @sth bigint;
declare @i bigint;
SET @sth = 100000 ;
while @i<@sth;
BEGIN
SET @i= next value for StreamEntrySequence;
END
是否有其他方法将当前值或起始值设置为随机值?也许使用服务器程序?
正如已经提到的,这将需要动态 SQL,因为改变顺序 http://msdn.microsoft.com/en-us/library/ff878572.aspx需要一个常数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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)