none
View com Funcao SQL 2000

    Question

  • Estou com um problemao. Nao posso usar o SQL 2005, tenho que usar o 2000, e criei uma funcao com parametro que no sql 2005 é super simples para usar essa funcao em uma view, porem no SQL 2000 nao estou conseguindo.

    Trata-se de uma funcao que recebe parametro o numero da venda, que faz parte do select da view.

    Obrigado !!!
    Wednesday, August 26, 2009 9:23 PM

All replies

  • Olá Davi,

    Mas qual está sendo a dificuldade? Ocorreu algum erro?

    Segue abaixo um exemplo bem simples para utilização de funções no SQL Server 2000.


    CREATE VIEW TESTE AS
    SELECT 1 AS PARAMETRO, 'Parâmetro 1' AS DESCRICAO

    SELECT * FROM TESTE

    CREATE FUNCTION MINHA_FUNCAO (@PARAMETRO1 INT)
    RETURNS INT
    AS
    BEGIN
     DECLARE @RESULTADO INT
     SELECT @RESULTADO = 2 * @PARAMETRO1
     RETURN (@RESULTADO)END

    SELECT DBO.MINHA_FUNCAO(PARAMETRO) AS RESULTADO_VINDO_DA_FUNCAO, DESCRICAO FROM TESTE


    Um abraço,
    Raul Santos Neto


    http://raulsantosneto.wordpress.com
    Wednesday, August 26, 2009 10:28 PM
  • Davi,

    O que tem na estrutura desta view que dificulte ela de ser executada no SQL Server 2000?


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    Friday, August 28, 2009 1:19 AM
  • Bom dia a todos e Obrigado !!!

    é o Seguinte, o SQL Server 2000 nao aceita utilizar funcao de forma simples como é no SQL 2005 ou 2008.

    Exemplo:


    CREATE FUNCTION FN_Teste (@Venda VARCHAR(6))
       RETURNS @Retorno TABLE(FormaPagto INT)
    
    AS
       BEGIN
    INSERT INTO @Retorno (FormaPagto) VALUES(1)
    RETURN END
    No SQL Server 2005 eu criaria uma View bem simples:

    CREATE VIEW VwTeste

    AS

    SELECT TbVenda.Venda,
                (SELECT FormaPagto FROM dbo.FN_Teste(TbVenda.Venda)) AS FormaPagto
    FROM   TbVenda

    No SQL Server 2000 nao aceita passar parametro dessa forma: (SELECT FormaPagto FROM dbo.FN_Teste(TbVenda.Venda)) AS FormaPagto


    Obrigado !!!
    • Edited by DaviSaba Friday, August 28, 2009 6:52 PM Texto errado
    Friday, August 28, 2009 11:24 AM
  • Davi,

    Você esta tentando passar a função como parâmetro na View, pegando o resultado da função e apresentando como se fosse uma coluna.

    Será que você não poderia fazer uma modificação na sua view?


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    Saturday, August 29, 2009 9:57 PM
  • Junio, bom dia !!!

    Eu poderia mudar a view sim, porque o importante é funcionar, nao importa os meios. So para voce entender o que estou tentando fazer:

    É uma view grande que fornece os dados para gerar o arquivo da nota fiscal eletronica. Um dos retornos que preciso, nao da para implementar direto na view, porque depende de uma analise, que realizo na funcao.

    Se voce tiver alguma sugestao eu agradeço, obrigado !!!
    Monday, August 31, 2009 11:40 AM