O SQL Server fornece muitas funções internas e também permite criar funções definidas pelo usuário. As categorias de funções internas são classificadas em quatro (04) categorias principais.
Função
|
Descrição
|
---|---|
Retornam um objeto que pode ser usado como referências de tabela em uma instrução SQL.
| |
Funcionam em uma coleção de valores mas retornam um valor único de resumo.
| |
Retornam um valor de classificação para cada linha em uma partição.
| |
As funções de conjunto de linhas retornam um objeto que pode ser usado no lugar de uma referência de tabela em uma instrução do Transact-SQL.Todas as funções de conjunto de linhas são não determinísticas. Isso significa que essas funções nem sempre retornam os mesmos resultados a cada chamada.
OPENDATASOURCE
Fornece informações de conexão ad hoc como parte de um nome de objeto de quatro partes sem usar um nome de servidor vinculado.
Ex:
SELECT * FROM OPENDATASOURCE('SQLNCLI','Data Source=BR\SQL;Integrated Security=SSPI')
.AdventureWorks2012.HumanResources.Employee
OPENQUERY
Executa a consulta passagem especificada no servidor vinculado especificado. Esse servidor é uma fonte de dados OLE DB. OPENQUERY pode ser referenciada na cláusula FROM de uma consulta como se fosse um nome de tabela. OPENQUERY também pode ser referenciada como a tabela de destino de uma instrução INSERT, UPDATE ou DELETE. Isso dependerá dos recursos do provedor OLE DB. Embora a consulta possa retornar vários conjuntos de resultados, OPENQUERY retorna somente o primeiro deles.
Ex:
A.Executando uma consulta de passagem UPDATE
O exemplo a seguir usa uma consulta de passagem UPDATE no servidor vinculado criado no exemplo A.
UPDATE OPENQUERY (SQL8, 'SELECT name FROM joe.titles WHERE id = 101')
SET name = 'ADifferentName'
B.Executando uma consulta de passagem INSERT
O exemplo a seguir usa uma consulta de passagem INSERT no servidor vinculado criado no exemplo A.
INSERT OPENQUERY (SQL8, 'SELECT name FROM joe.titles')
VALUES ('NewTitle')
C.Executando um consulta de passagem DELETE
O exemplo a seguir usa uma consulta de passagem DELETE para excluir a linha inserida no exemplo C.
DELETE OPENQUERY (SQL8, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''')
OPENXML
Fornece uma exibição de conjunto de linhas em um documento XML.Ex: EXEC sp_xml_preparedocument @idoc OUTPUT, @doc;
-- Execute a SELECT statement that uses the OPENXML rowset provider.
SELECT *
FROM OPENXML (@idoc, '/ROOT/Diretorio',1)
WITH (CustomerID varchar(10),
ContactName varchar(20));
Continue a leitura em Funções De agregações ...