C# 使用变量或参数指定ALTER SEQUENCE的重新启动值

C# 使用变量或参数指定ALTER SEQUENCE的重新启动值,c#,sql-server,C#,Sql Server,在这种情况下,我需要将一个序列重新启动到一个指定的值,该值要么在变量中指定,要么作为参数从C#程序以编程方式传递 下面的代码是一个示例,我希望它能起作用,但没有起作用: DECLARE @current_value AS BigInt = 60000; ALTER SEQUENCE usq_MySequence RESTART WITH @current_value 像这样的方法确实有效: ALTER SEQUENCE usq_MySequence RESTART W

在这种情况下,我需要将一个序列重新启动到一个指定的值,该值要么在变量中指定,要么作为参数从C#程序以编程方式传递

下面的代码是一个示例,我希望它能起作用,但没有起作用:

DECLARE @current_value AS BigInt = 60000;

ALTER SEQUENCE
    usq_MySequence
RESTART WITH
    @current_value
像这样的方法确实有效:

ALTER SEQUENCE
    usq_MySequence
RESTART WITH
    60000
然而,这是硬编码的,我正在与之交互的程序将只传递参数(使用.NET中的SqlCommand)


是否仍要使用变量或参数重置序列?

使用值重新启动必须是常量。使用变量设置它的唯一方法是使用一些动态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);

语法图非常清晰-语法图中充满了
,没有其他用于指定值的内容。谢谢;deans的回答解决了给定限制的问题。