在sql server中动态加入多个表

时间:2018-03-12 07:15:14

标签: sql-server

这是我的查询。 我有两张桌子作为例子

将来我会在查询中添加更多表格。

那么如何在单个查询中动态加入这些表

1)tblEmployee

    - EmpId
    - Name
    - DOB

2)tblSalary

    - EmpId
    - TotalSalary
    - PF
    - NetSalary

我如何获取数据。 表名和字段名在变量中,逗号分隔。

DECLARE @FieldNames VARCHAR(MAX) = 'Id, Name, NetSalary'
DECLARE @TableName VARCHAR(MAX) = 'tblEmployee, tblSalary'

SELECT @FieldNames FROM @TableNames

我可以使用主键和外键自动连接这些表吗?

以上查询返回的虚拟数据太多。

1 个答案:

答案 0 :(得分:0)

虽然在我看来这有点过于动态,你可以循环遍历表名(之前拆分表名字符串),尝试获取外键(例如:How can I list all foreign keys referencing a given table in SQL Server?)循环然后使用JOINS构建一个可怕的动态SQL字符串,并使用“execute(@cmd)”执行它。 “master”表将是不包含所有其他表的FK的表。