在一个公共数据库的多个表中更改相同的字段名称

问题描述 投票:0回答:1

我有一个包含400多个表的数据库。每个表都有一个名为ID的键ID字段,但它们都以“ Id”结尾。例如(非代码):

Table 1 ID field = SurveyId
Table 2 ID field = TaskId
Table 3 ID Field = IWantAPeanutButterSandwichId

但是,它们不是表中唯一包含“ Id”的字段,因此我首先想到的是将“ Where name like'%Id'”合并进来。有没有一种方法可以通过sql查询来标识哪个字段是关键字段,并且不必将每个字段都单独遍历就可以将它们全部更改为“ Id”(在一个脚本中)?

sql-server ssms
1个回答
0
投票

您可以使用SQL Server元数据视图(information_schema.table_constraintsinformation_schema.constraint_column_usage)来标识表的键列:

select 
    tc.table_schema, 
    tc.table_name,  
    ccu.column_name
from 
    information_schema.table_constraints as tc
        join 
    information_schema.constraint_column_usage as ccu 
        on tc.constraint_name = ccu.constraint_name
where  
    tc.constraint_type = 'Primary Key'
© www.soinside.com 2019 - 2024. All rights reserved.