«

»

Sep 18

Print this Post

Como copiar stored procedures para outro servidor?

Normalmente desenvolvemos nossos sistemas em um servidor de desenvolvimento (dev server), e após todos os testes, temos que enviar os códigos para o servidor de produção. Essa tarefa pode ser feita via FTP ou através de drives compartilhados na rede, para nosso código ColdFusion. Mas para as stored procedures, temos que gerar os scripts e rodá-los no servidor de produção.

Voce pode tambem escrever um trecho de código ColdFusion para executar essa tarefa via SQL:

pushToLive.cfm

<cfparam name="url.devDsn" default="myDevDSN">
<cfparam name="url.liveDsn" default="myLiveDSN">
<cfparam name="url.output" default="false">
<cfquery name="qProcs" datasource="#devDsn#">
     SELECT o.name, c.text
     FROM sysobjects o LEFT JOIN dbo.syscomments c ON o.id=c.id
     WHERE xType='P' and category=0
</cfquery>
<cfoutput>
There are #qProcs.recordCount# procedures to overwrite<br /><br /><br />
<cfflush>
<cfset i=1>
<cfloop query="qProcs">
     <cfquery datasource="#liveDsn#">
          IF EXISTS(SELECT name FROM sysobjects WHERE name = '#name#' AND type = 'P')
               DROP PROCEDURE #name#
     </cfquery>
     <cfif url.output>
          <br /><br />#text#<br /><br />
          <cfflush>
     </cfif>
     <cftry>
          #i#. Writing #name#<br />
          <cfflush>
          <cfquery datasource="#liveDsn#">
               #preserveSingleQuotes(text)#
          </cfquery>
          <cfcatch type="any">
               <h1 style="color:red;">Error Writing #qProcs.name#</h1><br />
               #qProcs.text#<br /><br />
               <cfdump var="#cfcatch#">
          </cfcatch>
     </cftry>
     <cfset i=i+1>
</cfloop>
<br />
Done!<br />
</cfoutput>

by Phillip Gagnon

Permanent link to this article: https://ensina.me/coldfusion/como-copiar-stored-procedures-para-outro-servidor/

Leave a Reply