Академический Документы
Профессиональный Документы
Культура Документы
LOGIN: SENHA:
Tecnologias Revistas Cursos Pocket videos Frum Servios Publicar Compre Crditos Loja Virtual Assine
Cadastre-se
Sem rodeios: Funes em T-SQL so rotinas que retornam valores ou tabelas. Com elas voc poder construir vises parametrizadas ou ainda construir suas prprias
funes, semelhantes a DATE(), STUFF(), LTrim() dentre outras. Existem trs tipos de funes possveis. Segue-se um caso de uso prtico para cada uma delas: Exemplos: 1 Deseja-se retirar todos os espaos em branco de uma string qualquer. Vamos elaborar uma funo para retirar todos os espaos em branco de uma string qualquer com tamanho mximo de 1000 caracteres. Usaremos a funo built-in (funo interna do sql server) ltrim() que retira os espaos em branco do lado esquerdo e rtrim() que retira os espaos em branco da direita. A Tipo de funo: Scalar-valued user-defined function: CREATE FUNCTION TRIM(@ST VARCHAR(1000)) RETURNS VARCHAR(1000) BEGIN RETURN(LTRIM(RTRIM(@ST))) END
B Invocando uma Scalar-valued user-defined function: SELECT '>' + DBO.TRIM(' WELLYNGTON MOREIRA ')+'<' C Resultado obtido:
D Consideraes importantes:
i.
assim sendo, para invoc-la de outro database se faz necessrio o uso da assinatura completa da funo: SELECT []..([parametros-opcioanais]...)
2 Deseja-se uma tabela com os registros de todos os tempos possveis em intervalos de minutos parametrizveis entre duas datas quaisquer. Como o problema requer o retorno de datas em intervalos de minutos, vamos criar uma tabela em nossa funo com um campo do tipo DATETIME, utilizando a funo built-in (funo interna do SQL Server) DATEADD() para incrementar uma data inicial at a data final desejada em intervalos de minutos = MINUTE. A Tipo de funo: Multi-statement table-valued function CREATE FUNCTION DtsMinutos(@min int, @dti datetime, @dtf datetime) RETURNS @tbl TABLE(dt datetime) AS BEGIN WHILE @dti BEGIN INSERT INTO @tbl(dt) VALUES (@dti) SET @dti = DATEADD(MINUTE,@min,@dti) END RETURN END B Invocando uma Multi-statement table-valued function: SELECT *
FROM
C Resultado obtido:
3 Deseja-se uma tabela com os FUNCIONRIOS contratados aps uma data especfica. Para este problema vamos supor uma tabela povoada com trs atributos: A matrcula do tipo int, o nome do tipo varchar(80) e dataContratacao do tipo dateTime com a data que o funcionrio foi contratado. A Tipo de funo: Inline table-valued function CREATE FUNCTION funcionariosApos(@dt datetime) RETURNS TABLE AS RETURN (SELECT * FROM FUNCIONARIO WHERE dataContratacao >= @dt)
C Resultado obtido:
At a prxima e avante!
Cursos relacionados
Administrao do Firebird/InterBase Curso de Administrao do Microsoft SQL Server Ferramentas Administrativas do MySQL PL/SQL Oracle Administrao do Firebird/InterBase [Ver todos]
+SQL
Publicidade
Servios
Inclua um comentrio Adicionar aos Favoritos Marcar como lido/assistido Incluir anotao pessoal Verso para impresso
DevMedia | Anuncie | Fale conosco Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03