在SQL Server数据库中列出所有序列

16

我尝试过:

SELECT * 
FROM sys.sequences

我收到以下信息:

错误:不支持“variant”数据类型。
SQLState: 08S01
ErrorCode: 0

我知道有序列。在SQL Server Management Studio中是否有一种以图形方式查看表的序列的方法?谢谢。

编辑:我注意到这在SQL Squirrel客户端程序中不起作用,但完全相同的查询可以在SQL Server Management Studio中成功使用。

3个回答

23

如果您想要了解序列和值,您可以转换变量类型。例如,以下内容将提供您可能正在寻找的大部分细节:

SELECT
  name,
  cast(start_value AS NUMERIC)   AS start_value,
  cast(increment AS NUMERIC)     AS increment,
  cast(current_value AS NUMERIC) AS current_value
FROM sys.sequences;

将bigint转换为数值数据类型时出现算术溢出错误。 - Soner from The Ottoman Empire
@SonerfromTheOttomanEmpire,你还记得那是哪个版本吗?很抱歉两年前没有问! - NealeU
与其版本无关,它容易受到溢出攻击。 - Soner from The Ottoman Empire
好的,那需要一些数据库操作才能实现。当我需要时,它确实对我有用。 - NealeU

15

在SSMS中,您可以在“可编程性”下的对象资源管理器中找到序列:

输入图像描述


2
这当然总是一个选项,如果你只想看到它们。如果你想在应用程序中使用它们,你必须知道如何查询它们 ;) - campovski

4
你使用的是哪个版本的SQL Server?根据文档:在SQL Server 2005和更高版本中,目录视图中元数据的可见性仅限于用户拥有或被授予某些权限的可保护对象。你确定你正在以适当的权限运行脚本吗?

我刚刚注意到以下事项: 起初我使用了SQL Squirrel,但是查询在那里无法工作。 然后我在SQL Management Studio中尝试了完全相同的查询,它可以工作。我得到了我想要的列表。这可能与我在每个客户端中授权自己的方式有关,或者只是它们访问数据库引擎的不同方式。 - Steve Waters
1
哦,SQL Squirrel。是的,可能该程序没有权限。 - campovski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接