{"id":30379,"date":"2024-02-28T05:54:00","date_gmt":"2024-02-28T04:54:00","guid":{"rendered":"https:\/\/expert-only.com\/?p=30379"},"modified":"2024-03-01T12:17:24","modified_gmt":"2024-03-01T11:17:24","slug":"como-chamar-uma-funcao-do-sql-server","status":"publish","type":"post","link":"https:\/\/expert-only.com\/pt-pt\/t-sql\/como-chamar-uma-funcao-do-sql-server\/","title":{"rendered":"Como Chamar uma Fun\u00e7\u00e3o do SQL Server ?"},"content":{"rendered":"\n<h4 class=\"wp-block-heading has-text-align-left\" id=\"h-como-chamar-funcoes-do-sql-server-a-partir-de-scripts-transact-sql\"><strong><em>Como chamar fun\u00e7\u00f5es do SQL Server a partir de scripts Transact-SQL?<\/em><\/strong><\/h4>\n\n\n\n<p>Tutorial sobre como chamar uma fun\u00e7\u00e3o do SQL Server usando scripts T-SQL, com e sem par\u00e2metros. De facto, a sintaxe T-SQL para chamar uma fun\u00e7\u00e3o difere da chamada de uma stored procedure. Utilize a fun\u00e7\u00e3o do SQL Server da mesma forma que seleciona dados de uma tabela. Aprender a chamar uma fun\u00e7\u00e3o definida pelo utilizador do SQL Server com um script T-SQL \u00e9 essencial para otimizar a manuten\u00e7\u00e3o do seu banco de dados e facilitar a manipula\u00e7\u00e3o de dados.<\/p>\n\n\n\n<p>Neste tutorial SQL, vamos examinar como usar uma fun\u00e7\u00e3o definida pelo utilizador e como personalizar a sa\u00edda da fun\u00e7\u00e3o para atender a necessidades espec\u00edficas. Uma <a href=\"https:\/\/expert-only.com\/en\/t-sql\/how-to-create-a-sql-server-function\/\"><strong>fun\u00e7\u00e3o definida pelo utilizador do SQL Server<\/strong><\/a> \u00e9 um programa Transact-SQL que aceita par\u00e2metros de entrada. Quando chamada, realiza a\u00e7\u00f5es, como ler uma tabela do SQL Server, e retorna um resultado de sa\u00edda.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-1-parametro-de-entrada-nao-e-obrigatorio-numa-funcao-do-sql-server\">1. Par\u00e2metro de entrada n\u00e3o \u00e9 obrigat\u00f3rio numa fun\u00e7\u00e3o do SQL Server<\/h2>\n\n\n\n<p>Uma fun\u00e7\u00e3o n\u00e3o necessariamente tem um par\u00e2metro de entrada. No entanto, uma fun\u00e7\u00e3o definida pelo utilizador do SQL Server <a href=\"https:\/\/opac.imist.ma\/cgi-bin\/koha\/opac-detail.pl?biblionumber=39629\" target=\"_blank\" rel=\"noreferrer noopener\">retorna dados<\/a>, que podem ser um conjunto de resultados vazio, uma \u00fanica linha ou m\u00faltiplas colunas. Por exemplo, ao chamar a fun\u00e7\u00e3o integrada para exibir a data no SQL Server, o sistema retorna a data atual.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">SELECT GETDATE();\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-2-o-resultado-de-saida-e-obrigatorio-em-funcoes-t-sql\">2. O resultado de sa\u00edda \u00e9 obrigat\u00f3rio em fun\u00e7\u00f5es T-SQL<\/h2>\n\n\n\n<p>De fato, uma fun\u00e7\u00e3o \u00e9 definida pelo fato de retornar um resultado. Para chamar uma fun\u00e7\u00e3o, abra o SSMS e adapte o c\u00f3digo da fun\u00e7\u00e3o se necess\u00e1rio. Considere este script para criar uma fun\u00e7\u00e3o chamada dbo.ufnDisplayCustomers em T-SQL:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">CREATE FUNCTION dbo.ufnDisplayCustomers(@CustomerID INTEGER)\nRETURNS NVARCHAR(20)\nAS \nBEGIN \n  DECLARE @CustomerName  AS NVARCHAR(20);\n  SELECT  @CustomerName = [Name]\n  FROM    [dbo].[Customers]\n  WHERE   [CustomerID] = @CustomerID;\n  RETURN  @CustomerName;\nEND\nGO\n<\/pre>\n\n\n\n<p>Para chamar uma fun\u00e7\u00e3o do SQL Server, utilize a seguinte sintaxe:<\/p>\n\n\n\n<p><em><strong>SELECT dbo.FunctionName(Parameters);<\/strong><\/em><\/p>\n\n\n\n<p>A fun\u00e7\u00e3o abaixo exibe o nome de um cliente associado ao n\u00famero do cliente passado como par\u00e2metro. Claro que assumimos que voc\u00ea tem uma tabela com pelo menos estas duas colunas, como no exemplo.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>CustomerID<\/li>\n\n\n\n<li>Name<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/* Expert-Only.com *\/ \nSELECT [CustomerID]\n      ,[Name]\n  FROM [Expert-Only].[dbo].[Customers];\n\n\n\/* Expert-Only.com *\/ \nSELECT dbo.ufnDisplayCustomers(1);\n<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"580\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2023\/07\/sql-server-function-from-t-sql-query.jpg\" alt=\"Exemplo de query para chamar uma Fun\u00e7\u00e3o do SQL Server a partir do T-SQL\" class=\"wp-image-30356\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2023\/07\/sql-server-function-from-t-sql-query.jpg 640w, https:\/\/expert-only.com\/wp-content\/uploads\/2023\/07\/sql-server-function-from-t-sql-query-300x272.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption class=\"wp-element-caption\"><em>Exemplo de query para chamar uma Fun\u00e7\u00e3o do SQL Server a partir do T-SQL<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<figure class=\"wp-block-embed aligncenter is-type-wp-embed is-provider-tutoriais-sql-e-ti wp-block-embed-tutoriais-sql-e-ti\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"XJbpTzBVfL\"><a href=\"https:\/\/expert-only.com\/en\/t-sql\/how-to-create-a-sql-server-function\/\">How to create a SQL Server function with a script ?<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;How to create a SQL Server function with a script ?&#8221; &#8212; Tutoriais SQL e TI\" src=\"https:\/\/expert-only.com\/en\/t-sql\/how-to-create-a-sql-server-function\/embed\/#?secret=F0XKQwIquQ#?secret=XJbpTzBVfL\" data-secret=\"XJbpTzBVfL\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-3-chamar-uma-funcao-do-sql-server-e-renomear-a-coluna-de-saida\">3. Chamar uma fun\u00e7\u00e3o do SQL Server e renomear a coluna de sa\u00edda<\/h2>\n\n\n\n<p>Com este segundo exemplo de chamada, tamb\u00e9m podemos renomear a coluna de resultado para personalizar a sa\u00edda. Para fazer isso, use a sintaxe gen\u00e9rica abaixo:<\/p>\n\n\n\n<p><em><strong>SELECT dbo.FunctionName(Parameters) AS [NewColumnName];<\/strong><\/em><\/p>\n\n\n\n<p>Abaixo est\u00e1 um exemplo pr\u00e1tico, usando dados de Clientes, ent\u00e3o a fun\u00e7\u00e3o \u00e9 usada para exibir o nome dos clientes com base no ID do cliente, ent\u00e3o a coluna de resultado \u00e9 renomeada como <em>CustomerName<\/em>, da mesma forma que colunas s\u00e3o renomeadas em consultas SELECT do SQL Server.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">SELECT dbo.ufnDisplayCustomers(1) AS [CustomerName]; \n<\/pre>\n\n\n\n<p>Neste outro tutorial, explicamos <a href=\"https:\/\/expert-only.com\/en\/t-sql\/modify-sql-server-function\/\"><strong>como modificar uma fun\u00e7\u00e3o do SQL Server existente<\/strong><\/a>. Para mais informa\u00e7\u00f5es aprofundadas e oficiais sobre fun\u00e7\u00f5es definidas pelo utilizador no SQL Server, leia a <a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/relational-databases\/user-defined-functions\/user-defined-functions?view=sql-server-2017\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">documenta\u00e7\u00e3o<\/a> da MS diretamente no site da Microsoft. A documenta\u00e7\u00e3o em ingl\u00eas \u00e9 geralmente mais rica e completa do que em outros idiomas, incluindo o franc\u00eas. O f\u00f3rum oficial da Microsoft sobre bases de dados e as p\u00e1ginas de suporte em ingl\u00eas tamb\u00e9m s\u00e3o muito mais ativas do que em outros idiomas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-sobre-chamar-funcoes-do-sql-server-a-partir-de-scripts-t-sql\">Sobre chamar fun\u00e7\u00f5es do SQL Server a partir de scripts T-SQL<\/h3>\n\n\n\n<p>Em conclus\u00e3o, vimos como chamar uma fun\u00e7\u00e3o do SQL Server a partir de um script T-SQL, sendo uma opera\u00e7\u00e3o necess\u00e1ria para otimizar e especialmente reutilizar c\u00f3digo de forma eficiente no seu banco de dados. Este tutorial mostrou-lhe como criar, chamar e personalizar fun\u00e7\u00f5es do SQL Server. Dominando estas t\u00e9cnicas, ser\u00e1 capaz de tirar o m\u00e1ximo partido do seu banco de dados SQL Server e melhorar significativamente o desempenho das suas aplica\u00e7\u00f5es.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-wp-embed is-provider-tutoriais-sql-e-ti wp-block-embed-tutoriais-sql-e-ti\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"4rE43clyFr\"><a href=\"https:\/\/expert-only.com\/en\/t-sql\/manage-sql-server-user-defined-functions\/\">Manage SQL Server user defined functions<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Manage SQL Server user defined functions&#8221; &#8212; Tutoriais SQL e TI\" src=\"https:\/\/expert-only.com\/en\/t-sql\/manage-sql-server-user-defined-functions\/embed\/#?secret=Z4LGGYp6t2#?secret=4rE43clyFr\" data-secret=\"4rE43clyFr\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Como chamar fun\u00e7\u00f5es do SQL Server a partir de scripts Transact-SQL? Tutorial sobre como chamar uma fun\u00e7\u00e3o do SQL Server usando scripts T-SQL, com e sem par\u00e2metros. De facto, a sintaxe T-SQL para chamar uma fun\u00e7\u00e3o difere da chamada <a class=\"mh-excerpt-more\" href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/como-chamar-uma-funcao-do-sql-server\/\" title=\"Como Chamar uma Fun\u00e7\u00e3o do SQL Server ?\">&#8230;<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":5812,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[456],"tags":[],"class_list":{"0":"post-30379","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-t-sql"},"_links":{"self":[{"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/posts\/30379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=30379"}],"version-history":[{"count":2,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/posts\/30379\/revisions"}],"predecessor-version":[{"id":30387,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/posts\/30379\/revisions\/30387"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/media\/5812"}],"wp:attachment":[{"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=30379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=30379"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=30379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}