sql - 将所有列名收集到一个表中
问题描述
我正在从事一个项目,其目的是将sql数据库中的所有表名和列名从一种语言重命名为另一种语言。我已将所有本地表名收集到一个表 ltbl_TableNames 中,并希望将这些表的所有列添加到一个名为 ltbl_TableColumns 的表中。
我还希望每个表列都有指向其表名的链接。例如,表“Sales”有一个名为“Sum”的列。表“销售”的 ID 为“10000”。我想将该 ID 添加到名为“TableName_ID”的列中以进行链接。这可能没有很多麻烦吗?
免责声明:我正在考虑重命名过程。我只想收集链接到其父表名的列名。
提前感谢您的回答。
解决方案
您可以sys.tables
用于获取table name
数据库中的列表。同样,column name
您可以使用information_schema.columns
,因为这将提供带有table name
. 从以上 2 条记录中,您可以轻松获得所需的结果。
;WITH CTABLE AS
( SELECT * FROM SYS.TABLES WHERE TYPE_DESC = 'USER_TABLE' )
, COLUMNNAME AS
( SELECT * FROM INFORMATION_SCHEMA.COLUMNS )
SELECT * INTO NEWTABLE FROM
(SELECT CTABLE.NAME AS TABLENAME , COLUMNNAME.COLUMN_NAME, COLUMNNAME.COLUMN_NAME + '_' + CAST(CTABLE.OBJECT_ID AS VARCHAR(15)) AS NEW_COLUMNNAME
FROM CTABLE INNER JOIN COLUMNNAME ON CTABLE.NAME = COLUMNNAME.TABLE_NAME ) AS D
你可以试试这个以获得你的结果。
推荐阅读
- flutter - 无法使用 ListView ( Flutter ) 在 Stack 内滚动 MapView
- angular - 按列值对 mat-table 进行排序
- java - JAVA - 如何绕过没有打开标记的封闭 XML 标记
- sql-server-2005 - 日期的递归 CTE
- r - 使用curve()时的函数表达式R问题
- r - 在 R 中的 Methyl450k 数据集上实现 XGBoost
- angular - 为 ServiceStack DTO Angular 6 赋值
- javascript - 如何导出/保存更新的 d3.js v4 树 json 数据字符串
- list - Kotlin 随机不同数字的列表
- c# - 未检测到空/空行