我只想监视每当标识列数据类型值即将达到其最大限制时它会在何处引发警报。
\n例如,我有一个“A”表,该表具有Id
包含 2,147,483,000 行的整数标识。众所周知,SQL Server 整数限制为 +-2,147,483,647
整数Id
标识列即将达到其最大限制。
我尝试使用 max(整数数据类型) 函数查询所有数据库表,并与自己的限制进行比较。但这是相当昂贵的。
\n我需要标识列数据类型的列表及其表名,该值即将达到其最大限制。
\n\xc4\xb0s 有任何方法可以做到这一点,例如自动通知的内置警报机制,或者我需要创建一个使用 max 函数查询表的作业等。
\n您应该能够很容易地从sys.identity_columns
系统目录视图中获取该信息。
尝试像这样的查询:
SELECT
TableName = t.Name,
IdColumnName = ic.name,
IdColumnType = ty.name,
ic.seed_value,
ic.increment_value,
ic.last_value
FROM
sys.identity_columns ic
INNER JOIN
sys.tables t ON t.object_id = ic.object_id
INNER JOIN
sys.types ty ON ty.user_type_id = ic.user_type_id
Run Code Online (Sandbox Code Playgroud)
并在这里得到结果:
TableName | 列名 | Id列类型 | 种子值 | 增量值 | 最后一个值 |
---|---|---|---|---|---|
地区模型 | ID | 整数 | 1 | 1 | 3 |
活动 | 活动ID | 整数 | 1000 | 1 | 1002 |
制造商 | ID | 整数 | 1 | 1 | 4 |
车 | ID | 整数 | 1 | 1 | 9 |
销售 | ID | 整数 | 1 | 1 | 9 |
国家 | 国家ID | 整数 | 1 | 1 | 18 |
最小人 | ID | 整数 | 1 | 1 | 13 |
您可以轻松地安排此查询定期运行,并在last_value
超过您可以定义的阈值时标记警告。
阅读值得信赖的 Microsoft 官方文档sys.identity_columns
中的所有内容
归档时间: |
|
查看次数: |
139 次 |
最近记录: |