Sql server T SQL 2014(重用相同的查询)

时间:2017-04-05 11:44:38

标签: sql-server sql-server-2014

我有一个连接3,4个表的查询(比如select * from table1 join table2 join table3),同一个查询在我的存储过程中多次使用。有没有办法将查询保存在一个地方,我可以在我的整个存储过程中使用它(在一个存储过程中)?

SELECT p.PK_PatientID
        FROM Patients p
        INNER JOIN PT ON e.FK_PatientID = p.PK_PatientID
        INNER JOIN PN n ON n.FK_PatientEncounterID = e.PK_PatientEncounterID
        INNER JOIN BP ep ON ep.FK_PatientEncounterID = e.PK_PatientEncounterID
        INNER JOIN SOP pd ON ep.FK_SharedProcedureDetailID = pd.PK_SharedOfficeProcedureDetailID
        INNER JOIN CQM vs ON pd.FK_SharedProcedureCode = vs.Code

这是我想多次在我的程序中使用它的查询

2 个答案:

答案 0 :(得分:1)

如果多次使用查询,可以使用Temp表或Table变量并将数据插入其中

如果您不想使用临时表或表变量,原因不明,可以使用视图

答案 1 :(得分:1)

您可以在视图中存储您选择的查询:

CREATE VIEW vW_Example
AS
    SELECT p.PK_PatientID
        FROM Patients p
        INNER JOIN PT ON e.FK_PatientID = p.PK_PatientID
        INNER JOIN PN n ON n.FK_PatientEncounterID = e.PK_PatientEncounterID
        INNER JOIN BP ep ON ep.FK_PatientEncounterID = e.PK_PatientEncounterID
        INNER JOIN SOP pd ON ep.FK_SharedProcedureDetailID = pd.PK_SharedOfficeProcedureDetailID
        INNER JOIN CQM vs ON pd.FK_SharedProcedureCode = vs.Code

然后你可以这样调用这个视图:

SELECT * FROM vW_Example