有没有办法做到这一点与t-sql不使用游标或循环或临时表?也许通过使用动态SQL?从数据库的所有表中的某些列中查找值 - 动态sql?
我想从数据库中每个表的第一列中获取最大值。
我使用syscolumns向我显示所有表的名称和每个表中第一列的名称。
因此,在下面的(非工作)示例中,我需要找到一种方法来循环访问syscolumns,并使用@tabname和@colname的所有值。有没有办法做到这一点?
declare @tabname sysname;
declare @colname sysname;
SELECT
name as [column name],
object_NAME(id) as [table name],
(select max(@colname) from @tabname) as [max col value]
from syscolumns
where colorder = 1
任何帮助或提示表示赞赏。
问候,戴夫。
什么奇怪的要求。这可以提供什么样的实际使用?要从每个表的第一列中获取最大值将需要动态sql。下面Kannan提供的答案在获取列名方面做得很好。你需要用动态sql来扩展它以获取你的值。 –
谢谢肖恩。是的,其他人的要求在这样的论坛中脱离上下文时总是非常奇怪。不幸的是,由于安全原因,我无法详细说明上下文。通过使用我的非常简单的syscolumns起始查询(其中colorder = 1)(我在给Kannan的答复中查看它),我得到了所有列名称和表名。 – davehants