Fórum COMO EXECUTAR UM SCRIPT DO SQL SERVER NUM PROJETO #15605

11/02/2010

0

Olá Pessoal. Eu gostaria de saber se existe uma maneira de executar numa classe, um script gerado pelo SQL Server.
Eu gerei o script pelo SQL SERVER, salvei em um arquivo txt, criei a classe, adicionei o txt no projeto, e até consegui fazer a execução.
Entretanto o script tem que ser modificado, tirando algumas coisas, por exemplo os comandos 'GO'.
Se for um script de criação de stored procedures por exemplo (que é a minha necessidade), ele não executa a não ser que o script contenha comando para criar uma única stored procedure, e iniciado pelo comando de criação, ou seja tirando os outros comandos que antecedem o referido comando.
Existe uma maneira de resolver isso. Eu gostaria de executar um único script para a criação de todas as stored procedures, tal como foi gerado pelo sql server. Grato
Sidney Mendonça/

Sidney Mendonça/

Responder

Posts

11/02/2010

Fabio Mans

Sidney todos os projetos que eu vi rodam normalmente o Script, veja se este exemplo te ajuda.  Quando eu precisei fazer  utilizei os métodos dele.     http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=eisk&DownloadId=5474     Utilities.SqlScriptUtility.RunScript(Server.MapPath("~") + @".\App_Data\scripts\CreateSchema.sql"); Utilities.SqlScriptUtility.RunScript(Server.MapPath("~") + @".\App_Data\scripts\CreateSetupData.sql");   public static bool CreateDatabase(string dbName, string connectionString) { try { SqlCommand sqlCmd = new SqlCommand(); sqlCmd.CommandText = "USE master CREATE DATABASE " + dbName; sqlCmd.CommandType = CommandType.Text; DatabaseUtility.ExecuteScalarCmd(sqlCmd, connectionString); return true; } catch (Exception) { return false; } } public static void RunScript(string scriptPath) { SqlCommand sqlCmd = new SqlCommand(); sqlCmd.CommandText = ReadDataFromFile(scriptPath); sqlCmd.CommandType = CommandType.Text; DatabaseUtility.ExecuteScalarCmd(sqlCmd); public static string ReadDataFromFile(string filePath) { FileStream fStream; // Reading the file content. fStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Read); StreamReader sReader = new StreamReader(fStream); string line = sReader.ReadToEnd(); sReader.Close(); return line; }     Espero ter ajudado
Responder

Gostei + 0

13/02/2010

Sidney Mendonça/

Olá Fábio. Em primeiro lugar obrigado pela atenção. Tentei com a sua sugestão, mas mesmo assim não fucionou, dando os mesmos erros. Caso queira fazer um teste, crie um database e execute o script abaixo no Sql Server e vai funcionar normalmente. Se executar através dos comandos, não vai funcionar. Grato Sidney             /****** Object: Table [dbo].[SCEsubCadastros] Script Date: 02/13/2010 19:15:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[SCEsubCadastros]( [CodigoDoProduto] [int] NOT NULL, [SubCodigo] [char](2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, [Descricao] [char](30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [Unidade] [char](2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [CodigoDeReferencia] [char](15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [CodigoDeBarras] [char](15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [QuantidadeEmbalagem] [float] NULL, [Observacoes] [char](240) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [PesoBruto] [float] NULL CONSTRAINT [DF__Tmp_SCEsu__PesoB__3AAC9BB0] DEFAULT (0), [PesoLiquido] [float] NULL CONSTRAINT [DF__Tmp_SCEsu__PesoL__3BA0BFE9] DEFAULT (0), [ListaPositiva] [char](1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [Densidade] [float] NULL, [CodigoDeBarras2] [char](15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [CodigoDeBarras3] [char](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [CodigoExterno] [int] NULL, [SubCodigoExterno] [char](2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [NaoListar] [bit] NOT NULL CONSTRAINT [DF__Tmp_SCEsu__NaoLi__3C94E422] DEFAULT (0), [IsentoParaOrgaosPublicos] [char](1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF__Tmp_SCEsu__Isent__3D89085B] DEFAULT ('N'), [SituacaoTributariaAlternativa] [char](3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [Lei11266_02_SP] [char](1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF__Tmp_SCEsu__Lei11__3E7D2C94] DEFAULT ('N'), [DestinoTransformacao] [char](2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [Fracionario] [bit] NOT NULL CONSTRAINT [DF__Tmp_SCEsu__Fraci__3F7150CD] DEFAULT (0), [ListaNeutra] [char](1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF__Tmp_SCEsu__Lista__40657506] DEFAULT ('N'), [ListaNegativa] [char](1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF__Tmp_SCEsu__Lista__4159993F] DEFAULT ('N'), [ArquivoDeImagem] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [Consulta1] [char](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [Consulta2] [char](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [Consulta3] [char](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [Consulta4] [char](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [Consulta5] [char](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [NomeComercial] [char](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, [PrecoMaximo] [float] NULL, [PrecoFabrica] [float] NULL, [Perecivel] [bit] NULL CONSTRAINT [DF__SCEsubCad__Perec__63662F2E] DEFAULT (0) ) ON [PRIMARY] SET ANSI_PADDING OFF ALTER TABLE [dbo].[SCEsubCadastros] ADD [TP_PROD] [char](1) COLLATE Latin1_General_CI_AS NULL ALTER TABLE [dbo].[SCEsubCadastros] ADD [TIPO_ITEM] [char](2) COLLATE Latin1_General_CI_AS NULL ALTER TABLE [dbo].[SCEsubCadastros] ADD [SequencialCodigoDeBarras] [int] IDENTITY(1,1) NOT NULL /****** Object: Index [PK_SCEsubCadastros] Script Date: 02/13/2010 19:15:59 ******/ ALTER TABLE [dbo].[SCEsubCadastros] ADD CONSTRAINT [PK_SCEsubCadastros] PRIMARY KEY NONCLUSTERED ( [CodigoDoProduto] ASC, [SubCodigo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO SET ANSI_PADDING OFF /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosDelete] Script Date: 02/13/2010 18:01:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SCEsubCadastrosDelete]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[usp_SCEsubCadastrosDelete] GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosInsert] Script Date: 02/13/2010 18:01:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SCEsubCadastrosInsert]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[usp_SCEsubCadastrosInsert] GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosList] Script Date: 02/13/2010 18:01:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SCEsubCadastrosList]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[usp_SCEsubCadastrosList] GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosListAll] Script Date: 02/13/2010 18:01:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SCEsubCadastrosListAll]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[usp_SCEsubCadastrosListAll] GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosListByCodigoSequencial] Script Date: 02/13/2010 18:01:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SCEsubCadastrosListByCodigoSequencial]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[usp_SCEsubCadastrosListByCodigoSequencial] GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosListByPrefixo] Script Date: 02/13/2010 18:01:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SCEsubCadastrosListByPrefixo]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[usp_SCEsubCadastrosListByPrefixo] GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosSelect] Script Date: 02/13/2010 18:01:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SCEsubCadastrosSelect]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[usp_SCEsubCadastrosSelect] GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosSelectByBarras] Script Date: 02/13/2010 18:01:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SCEsubCadastrosSelectByBarras]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[usp_SCEsubCadastrosSelectByBarras] GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosSelectByReferencia] Script Date: 02/13/2010 18:01:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SCEsubCadastrosSelectByReferencia]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[usp_SCEsubCadastrosSelectByReferencia] GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosUpdate] Script Date: 02/13/2010 18:01:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_SCEsubCadastrosUpdate]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[usp_SCEsubCadastrosUpdate]/****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosDelete] Script Date: 02/13/2010 18:00:35 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[usp_SCEsubCadastrosDelete] @CodigoDoProduto int, @SubCodigo char(2) AS DELETE FROM SCEsubCadastros WHERE CodigoDoProduto = @CodigoDoProduto and SubCodigo = @SubCodigo GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosInsert] Script Date: 02/13/2010 18:00:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO   CREATE PROCEDURE [dbo].[usp_SCEsubCadastrosInsert] @CodigoDoProduto int, @SubCodigo char(2), @Descricao char(30), @Unidade char(2), @CodigoDeReferencia char(15), @CodigoDeBarras char(15), @QuantidadeEmbalagem float, @Observacoes char(240), @PesoBruto float, @PesoLiquido float, @ListaPositiva char(1), @Densidade float, @CodigoDeBarras2 char(15), @CodigoDeBarras3 char(10), @CodigoExterno int, @SubCodigoExterno char(2), @NaoListar bit, @IsentoParaOrgaosPublicos char(1), @SituacaoTributariaAlternativa char(3), @Lei11266_02_SP char(1), @DestinoTransformacao char(2), @Fracionario bit, @ListaNeutra char(1), @ListaNegativa char(1), @ArquivoDeImagem nvarchar(100), @Consulta1 char(50), @Consulta2 char(50), @Consulta3 char(50), @Consulta4 char(50), @Consulta5 char(50), @NomeComercial char(50), @PrecoMaximo float, @PrecoFabrica float, @Perecivel bit, @TP_PROD char(1), @TIPO_ITEM char(2) AS INSERT INTO SCEsubCadastros (CodigoDoProduto, SubCodigo, Descricao, Unidade, CodigoDeReferencia, CodigoDeBarras, QuantidadeEmbalagem, Observacoes, PesoBruto, PesoLiquido, ListaPositiva, Densidade, CodigoDeBarras2, CodigoDeBarras3, CodigoExterno, SubCodigoExterno, NaoListar, IsentoParaOrgaosPublicos, SituacaoTributariaAlternativa, Lei11266_02_SP, DestinoTransformacao, Fracionario, ListaNeutra, ListaNegativa, ArquivoDeImagem, Consulta1, Consulta2, Consulta3, Consulta4, Consulta5, NomeComercial, PrecoMaximo, PrecoFabrica, Perecivel, TP_PROD, TIPO_ITEM) VALUES (@CodigoDoProduto, @SubCodigo, @Descricao, @Unidade, @CodigoDeReferencia, @CodigoDeBarras, @QuantidadeEmbalagem, @Observacoes, @PesoBruto, @PesoLiquido, @ListaPositiva, @Densidade, @CodigoDeBarras2, @CodigoDeBarras3, @CodigoExterno, @SubCodigoExterno, @NaoListar, @IsentoParaOrgaosPublicos, @SituacaoTributariaAlternativa, @Lei11266_02_SP, @DestinoTransformacao, @Fracionario, @ListaNeutra, @ListaNegativa, @ArquivoDeImagem, @Consulta1, @Consulta2, @Consulta3, @Consulta4, @Consulta5, @NomeComercial, @PrecoMaximo, @PrecoFabrica, @Perecivel, @TP_PROD, @TIPO_ITEM)   GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosList] Script Date: 02/13/2010 18:00:38 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[usp_SCEsubCadastrosList] @CodigoDoProduto int AS SELECT * FROM SCEsubCadastros WHERE CodigoDoProduto = @CodigoDoProduto ORDER BY Descricao GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosListAll] Script Date: 02/13/2010 18:00:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO   CREATE PROCEDURE [dbo].[usp_SCEsubCadastrosListAll] AS SELECT * FROM SCEsubCadastros ORDER BY CodigoDoProduto,SubCodigo   GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosListByCodigoSequencial] Script Date: 02/13/2010 18:00:39 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE PROCEDURE [dbo].[usp_SCEsubCadastrosListByCodigoSequencial] @CodigoSequencial int AS SELECT A.CodigoSequencial,A.CodigoHierarquico,S.Subcodigo,Rtrim(A.Descricao)+' - '+Rtrim(S.Descricao) DescricaoCompleta FROM SCEsubCadastros S, SCECadastroA A WHERE A.CodigoSequencial = S.CodigoDoProduto and A.CodigoSequencial = @CodigoSequencial ORDER BY DescricaoCompleta GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosListByPrefixo] Script Date: 02/13/2010 18:00:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO     CREATE PROCEDURE [dbo].[usp_SCEsubCadastrosListByPrefixo] @Prefixo char(30) AS SELECT A.CodigoSequencial,A.CodigoHierarquico,S.Subcodigo,Rtrim(A.Descricao)+' - '+Rtrim(S.Descricao) DescricaoCompleta FROM SCEsubCadastros S, SCECadastroA A WHERE A.CodigoSequencial = S.CodigoDoProduto and A.Descricao like Rtrim(@Prefixo)+'%' ORDER BY DescricaoCompleta     GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosSelect] Script Date: 02/13/2010 18:00:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[usp_SCEsubCadastrosSelect] @CodigoDoProduto int, @SubCodigo char(2) AS SELECT * FROM SCEsubCadastros WHERE CodigoDoProduto = @CodigoDoProduto and SubCodigo = @SubCodigo GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosSelectByBarras] Script Date: 02/13/2010 18:00:40 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE PROCEDURE [dbo].[usp_SCEsubCadastrosSelectByBarras] @CodigoDeBarras char(15) AS SELECT * FROM SCEsubCadastros WHERE (CodigoDeBarras = @CodigoDeBarras) or (CodigoDeBarras2 = @CodigoDeBarras) or (CodigoDeBarras3 = @CodigoDeBarras) GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosSelectByReferencia] Script Date: 02/13/2010 18:00:40 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE PROCEDURE [dbo].[usp_SCEsubCadastrosSelectByReferencia] @CodigoDeReferencia char(15) AS SELECT * FROM SCEsubCadastros WHERE CodigoDeReferencia = @CodigoDeReferencia GO /****** Object: StoredProcedure [dbo].[usp_SCEsubCadastrosUpdate] Script Date: 02/13/2010 18:00:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO   CREATE PROCEDURE [dbo].[usp_SCEsubCadastrosUpdate] @CodigoDoProduto int, @SubCodigo char(2), @Descricao char(30), @Unidade char(2), @CodigoDeReferencia char(15), @CodigoDeBarras char(15), @QuantidadeEmbalagem float, @Observacoes char(240), @PesoBruto float, @PesoLiquido float, @ListaPositiva char(1), @Densidade float, @CodigoDeBarras2 char(15), @CodigoDeBarras3 char(10), @CodigoExterno int, @SubCodigoExterno char(2), @NaoListar bit, @IsentoParaOrgaosPublicos char(1), @SituacaoTributariaAlternativa char(3), @Lei11266_02_SP char(1), @DestinoTransformacao char(2), @Fracionario bit, @ListaNeutra char(1), @ListaNegativa char(1), @ArquivoDeImagem nvarchar(100), @Consulta1 char(50), @Consulta2 char(50), @Consulta3 char(50), @Consulta4 char(50), @Consulta5 char(50), @NomeComercial char(50), @PrecoMaximo float, @PrecoFabrica float, @Perecivel bit, @TP_PROD char(1), @TIPO_ITEM char(2) AS UPDATE SCEsubCadastros SET CodigoDoProduto = @CodigoDoProduto, SubCodigo = @SubCodigo, Descricao = @Descricao, Unidade = @Unidade, CodigoDeReferencia = @CodigoDeReferencia, CodigoDeBarras = @CodigoDeBarras, QuantidadeEmbalagem = @QuantidadeEmbalagem, Observacoes = @Observacoes, PesoBruto = @PesoBruto, PesoLiquido = @PesoLiquido, ListaPositiva = @ListaPositiva, Densidade = @Densidade, CodigoDeBarras2 = @CodigoDeBarras2, CodigoDeBarras3 = @CodigoDeBarras3, CodigoExterno = @CodigoExterno, SubCodigoExterno = @SubCodigoExterno, NaoListar = @NaoListar, IsentoParaOrgaosPublicos = @IsentoParaOrgaosPublicos, SituacaoTributariaAlternativa = @SituacaoTributariaAlternativa, Lei11266_02_SP = @Lei11266_02_SP, DestinoTransformacao = @DestinoTransformacao, Fracionario = @Fracionario, ListaNeutra = @ListaNeutra, ListaNegativa = @ListaNegativa, ArquivoDeImagem = @ArquivoDeImagem, Consulta1 = @Consulta1, Consulta2 = @Consulta2, Consulta3 = @Consulta3, Consulta4 = @Consulta4, Consulta5 = @Consulta5, NomeComercial = @NomeComercial, PrecoMaximo = @PrecoMaximo, PrecoFabrica = @PrecoFabrica, Perecivel = @Perecivel, TP_PROD = @TP_PROD, TIPO_ITEM = @TIPO_ITEM WHERE CodigoDoProduto = @CodigoDoProduto and SubCodigo = @SubCodigo  
Responder

Gostei + 0

18/02/2010

Fabio Mans

Não consegui rodar no sql, você pode passar o script para o meu email em um txt.   fgamans@gmail.com   Obrigado.
Responder

Gostei + 0

18/02/2010

Sidney Mendonça/

Email enviado.   Grato   Sidney
Responder

Gostei + 0

24/02/2010

Fabio Mans

Sidney passei para o seu email o arquivo que contem o script do seu banco, e executando o método

Utilities.SqlScriptUtility.RunScript(Server.MapPath("~") + @".\App_Data\scripts\MeuScript.sql");

Funcionou direitinho.


Espero ter ajudado.


Fabio

Responder

Gostei + 0

26/02/2010

Fabio Mans

Sidney você tem mais alguma dúvida?
Responder

Gostei + 0

26/02/2010

Sidney Mendonça/

Estou viajando, não testei ainda o seu último Post. Na terça estarei no de volta e farei o teste e darei um retorno.   Grato
Responder

Gostei + 0

01/03/2010

Sidney Mendonça/

Grato. Chamado fechado.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar