1

我有一些从多个表中获取数据的选择语句,通常它们会运行多次以更新应用程序上的列表,以便用户查看数据。由于我对视图的整个故事非常陌生,我正在阅读这篇文章,它说视图应该替换长查询并且只是虚拟表以更快地访问数据,我想知道我应该如何以及是否应该使用视图来代替这些长查询。

这是我的一些疑问

IF @Action = 'SELECTALL'
BEGIN
    SELECT hr.IdColaborador,  hr.MotivoCriacao, hr.IdReq, Nome, hcb.Email, hr.RefInterna, hi.Descricao AS InfoLog, hs.Descricao AS STATUS, hd.DataAbertura AS DataCriacao FROM hRequisicao AS hr    
    JOIN hColaborador AS hcb ON hcb.IdColaborador = hr.IdColaborador
    JOIN hStatus AS hs ON hs.IdStatus = hr.IdStatus
    JOIN hInfoLogistica hi ON hi.IdInfoLogistica = hr.IdInfoLogistica               
    JOIN hDataLog hd ON hd.IdReq = hr.IdReq
    WHERE hr.IdStatus != 6
END
IF @Action = 'SELECTALL_USERID'
BEGIN
    SELECT hr.IdColaborador, hr.IdReq, Nome, hcb.Email, hr.RefInterna, hs.Descricao AS STATUS, hl.DataAbertura AS DataCriacao, hi.Descricao AS InfoLog  FROM hRequisicao AS hr  
    JOIN hColaborador AS hcb ON hcb.IdColaborador = hr.IdColaborador
    JOIN hStatus AS hs ON hs.IdStatus = hr.IdStatus     
    JOIN hDataLog AS hl ON hl.IdReq = hr.IdReq
    JOIN hInfoLogistica AS hi ON hi.IdInfoLogistica = hr.IdInfoLogistica
    WHERE hr.IdColaborador = @IdColaborador AND hr.IdStatus != 6
END 
IF @Action = 'SELECT'
BEGIN
    SELECT IdReq, hr.MotivoCriacao, hr.IdCodeRequest, hr.IdColaborador, Nome, hcb.Email, Projecto, Desenho, Indice, CadenciaMensal, NumCOMDEV, RefCliente, RefInterna, QTDLancamentoFormas, CapacidadeReal, Peso,
           TipoCaixa, QTDPecasCaixa, UnidadeProducao, CelulaProducao, NumKanbansProducao, QTDComp, TipoMetodologia, QTDMetProd, hi.Descricao AS InfoLog FROM hRequisicao AS hr
    JOIN hCodeRequest AS hcr ON hr.IdCodeRequest = hcr.IdCodeRequest
    JOIN hCaixa AS hc ON  hr.IdCaixa = hc.IdCaixa
    JOIN hComponentes AS hcp ON hr.IdComp = hcp.IdComp
    JOIN hMetodologiaProducao AS hmp ON hr.IdMetProd = hmp.IdMetProd
    JOIN hColaborador AS hcb ON hcb.IdColaborador = hr.IdColaborador
    JOIN hInfoLogistica AS hi ON hi.IdInfoLogistica = hr.IdInfoLogistica
    WHERE IdReq = @IdReq
END 

我从未使用过视图,我真的很想尝试一次应用它们以适应它们并看看它们是如何工作的,但我还不确定何时以及如何使用它们以及它们是否只是一个占位符隐藏长代码

4

0 回答 0