在这种情况下,我需要将序列重新启动到指定值,该值在变量中指定或作为参数从 C# 程序以编程方式传递。
下面的代码是我希望能起作用但没有起作用的示例:
DECLARE @current_value AS BigInt = 60000;
ALTER SEQUENCE
usq_MySequence
RESTART WITH
@current_value
像这样的东西确实有效:
ALTER SEQUENCE
usq_MySequence
RESTART WITH
60000
但是这是硬编码的,我与之交互的程序只会传递参数(使用 .NET 中的 SqlCommand)
有没有办法用变量或参数重置序列?
最佳答案
RESTART WITH
值必须是常量。用变量设置它的唯一方法是使用一些动态 SQL:
DECLARE @current_value AS BigInt = 60000;
DECLARE @s nvarchar(1000);
SET @s = N'
ALTER SEQUENCE
usq_MySequence
RESTART WITH ' + CAST(@current_value AS nvarchar(10));
EXEC (@s);
关于c# - 使用变量或参数指定 ALTER SEQUENCE 的重启值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23402859/