none
como criar uma View RRS feed

  • Pergunta

  • Boa noite preciso criar uma view, nunca criei uma, mas o parametro que esta vindo da aplicação para pesquisa é @Nome, agora não sei como colocar na view,fiz um select para demostrar oque eu quero

     

    SELECT
            est.est_codigo        as Codigo,
            est.est_data        as Data,
            replicate(0,(6  - len(cast(est.pa_codigo as varchar)))) + cast(est.pa_codigo as varchar) + ' - ' + pa.pa_nome as Pais,
            est.est_nome        as Nome,
            est.est_sigla       as Sigla,
            est.est_ibge        as Ibge   
       
            FROM Estado
            est LEFT JOIN    Pais pa      on(est.pa_codigo = pa.pa_codigo)

    where est.est_codigo = 1

    quinta-feira, 12 de janeiro de 2012 21:57

Respostas

  • Boa Noite,

    Views não aceitam parâmetros. Se você precisa trabalhar com parâmetros e encapsular, terá que optar por funções ou procedures. Segue um exemplo de uma função

    CREATE FUNCTION dbo.FN_Recupera (@nome varchar(100))
    RETURNS TABLE
    AS
    RETURN (
    SELECT
            est.est_codigo        as Codigo,
             est.est_data        as Data,
             replicate(0,(6  - len(cast(est.pa_codigo as varchar)))) + cast(est.pa_codigo as varchar) + ' - ' + pa.pa_nome as Pais,
             est.est_nome        as Nome,
             est.est_sigla       as Sigla,
             est.est_ibge        as Ibge   
       
            FROM Estado
             est LEFT JOIN    Pais pa      on(est.pa_codigo = pa.pa_codigo)
     
    where est.est_codigo = 1 and est.nome = @nome)
    GO

    SELECT dbo.FN_Recupera('Bahia')

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar quinta-feira, 12 de janeiro de 2012 22:08
    • Marcado como Resposta Harley Araujo quarta-feira, 18 de janeiro de 2012 12:42
    quinta-feira, 12 de janeiro de 2012 22:08
  • Boa Noite,

    A primeira parte do código cria a função dbo.FN_Recupera.

    A segunda parte do código use a função criada na primeira parte.

    dbo.FN_Recupera é o nome da função.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar sexta-feira, 13 de janeiro de 2012 22:02
    • Marcado como Resposta Harley Araujo quarta-feira, 18 de janeiro de 2012 12:42
    sexta-feira, 13 de janeiro de 2012 22:02

Todas as Respostas

  • Boa Noite,

    Views não aceitam parâmetros. Se você precisa trabalhar com parâmetros e encapsular, terá que optar por funções ou procedures. Segue um exemplo de uma função

    CREATE FUNCTION dbo.FN_Recupera (@nome varchar(100))
    RETURNS TABLE
    AS
    RETURN (
    SELECT
            est.est_codigo        as Codigo,
             est.est_data        as Data,
             replicate(0,(6  - len(cast(est.pa_codigo as varchar)))) + cast(est.pa_codigo as varchar) + ' - ' + pa.pa_nome as Pais,
             est.est_nome        as Nome,
             est.est_sigla       as Sigla,
             est.est_ibge        as Ibge   
       
            FROM Estado
             est LEFT JOIN    Pais pa      on(est.pa_codigo = pa.pa_codigo)
     
    where est.est_codigo = 1 and est.nome = @nome)
    GO

    SELECT dbo.FN_Recupera('Bahia')

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar quinta-feira, 12 de janeiro de 2012 22:08
    • Marcado como Resposta Harley Araujo quarta-feira, 18 de janeiro de 2012 12:42
    quinta-feira, 12 de janeiro de 2012 22:08
  • Gustavo oque seria esse, dbo.FN_Recupera
    sexta-feira, 13 de janeiro de 2012 21:33
  • Boa Noite,

    A primeira parte do código cria a função dbo.FN_Recupera.

    A segunda parte do código use a função criada na primeira parte.

    dbo.FN_Recupera é o nome da função.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar sexta-feira, 13 de janeiro de 2012 22:02
    • Marcado como Resposta Harley Araujo quarta-feira, 18 de janeiro de 2012 12:42
    sexta-feira, 13 de janeiro de 2012 22:02