我想获得最大值MAX (ID)为包含在我的DB “Table_Example”和特定的一个模式名ID的每个表我对每个表(ID)。最大数据库
单个例如:
SELECT MAX(ID) FROM Schema_name.Table_name1
此检索位于Table_name1最大ID值,但是我有84个表。我想知道每个表的最大值只在一列中。 这是我目前正在使用的代码: 我正在使用information_schema.columns来自动获取表的名称以及每个表所属的模式,以便将整个DB ID max(id)合并为一个柱。
USE TABLE_EXAMPLE
GO
DECLARE @ID NVARCHAR(MAX) --int
SET @ID = (SELECT DISTINCT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'SCHEMA_NAME' AND COLUMN_NAME IN ('ID') AND DATA_TYPE = 'INT')
SELECT @ID FROM (SELECT ('SCHEMA_NAME'+'.'+TABLE_NAME) AS TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'SCHEMA_NAME' AND COLUMN_NAME = 'ID' AND DATA_TYPE='INT') AS W
此脚本检索错误的数据,但我认为我是一个有点封闭,得到的值,但我不知道我做错了。 有人可以给我任何好的方法吗?或者有更好的选择来完成它?
是否在每个表中列名称为“ID”? –
你只是试图获得每个表中的标识/索引列的最大值? –
@JohnPasquet,但你设法发布一个答案..给OP一些时间。并非所有人都在此时 –