c# - 使用变量或参数指定 ALTER SEQUENCE 的重启值

标签 c# sql-server

在这种情况下,我需要将序列重新启动到指定值,该值在变量中指定或作为参数从 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/

相关文章:

sql-server - SQL CLR 标量函数缓存结果

c# - 恢复数据库时表单无响应

sql - 比较同月连续日期的值

sql-server - sql server表包含特殊外来字符

c# - 自动完成文本框控件

c# - 无法在 list 资源中找到报告

c# - 使用单独的程序集扩展 C# 代码

c# - 使用动态时在运行时将值类型推断为对象

php - 未选择数据库 - php 和 phpmyadmin

c# - .Net中的Dictionary在并行读写时是否有可能导致死锁?