Ir para conteúdo
Fórum Script Brasil

fulvio

Moderadores
  • Total de itens

    1.218
  • Registro em

  • Última visita

Tudo que fulvio postou

  1. Bom dia Rogério, A View (visão) serve para várias coisas. A sua utilização está mais relacionada com relatórios contendo dados de várias tabelas (são os lugares que mais se vê views). As vezes em algumas consultas, é necessário realizar o relacionamento de várias tabelas, muitas das vezes resgatando poucos campos de cada. Ao criar uma view, poderá acessar apenas uma tabela, contendo os dados que necessita. Em tabelas recursivas, uma view pode diminuir a quantidade de loops que tem que fazer para acessar os dados. Pose-se criar uma view contendo chaves de acessos à outras tabelas, diminuindo seus relacionamentos e diminuindo a concorrência nas tabelas. Estes foram alguns exemplos do dia a dia. Mas será o sistema que lhe informará se será ou não necessário. Para isto, é necessário você saber que possui esta opção e fazer testes para identificar o custo / benefício de uma implementação desta.
  2. Sim... Execute o script por inteiro. Se na base tiver alguma coluna de nome "Codigo", retornará o 1º registro. Caso queira fazer outras pesquisas, basta "setar" a variável @Coluna (o que fará para percorrer todas as colunas da tabela Cliente). Declare @Sql varchar(255) Declare @Coluna varchar(50) Set @Coluna = 'Codigo' Set @Sql = ('select top 1 * from syscolumns where name ='+''''+ @Coluna +'''') exec (@Sql)
  3. Bom dia Amigo, Para você utilizar o sistema de autenticação que já existe no SQL, você precisará de criar login e senha para cada usuário. Como fazer: - Abra o Management Studio. - Vá na opção Security / Logins. - Clique com o botão direito em Logins e depois New Login. - Deixe marcado a opção "SQL Server Authentication". - Coloque o login e senha que desejar. - Faça as demais configurações de acesso. Algumas informações: - você terá que ter permissão para criar os logins e senhas. - As senhas somente são alteradas por usuários que tenham permissão para tal. - Via script as senhas poderão ser alteradas (alter login LoginUsuario with password='aaa'), mas você terá que estar logado como administrador.
  4. Bom dia Amigo, No exemplo que deu, você quer verificar o conteúdo de todos os campos da tabela Cliente, entre as duas bases e atualizar se tiverem diferentes? Caso seja isto, terá que fazer campo a campo mesmo. Pode ser realizado da seguinte forma: - Selecionar os campos da tabela Cliente (select c.name from sysobjects o, syscolumns c where o.name='Cliente' and o.id=c.id) - Gravar estes campos em uma tabela auxiliar - Montar dinamicamente o script, passando as colunas para serem verificadas - Caso os dados sejam diferentes, "updatar". Fazendo desta forma, o script não ficará grande e não haverá a necessidade de manutenção, caso novas colunas forem inseridas. Caso tenha alguma dúvida na montagem, pode postar. :.)
  5. Achei uma explicação boa sobre Stored Routines: "programas armazenados no servidor, pré-compilados, chamados de forma explícita para executar alguma lógica de manipulação de dados, podendo retornar ou não algum valor" A maioria das informações estão relacionadas com MySql. Vou mover este tópico para o Fórum de MySql. As vezes o pessoal de lá pode lhe dar uma melhor ajuda.
  6. Boa tarde Amigo, Uma Stored Routines (Rotinas Armazenadas) são vários comandos / instruções que podem ser criadas no Banco de Dados. Como exemplo, temos Procedures, Funções, Triggers... Já pesquisou na net? É para algum trabalho?
  7. Bom dia Éder, Vamos a 1ª dúvida: Quando for criar a view, crie a coluna ID_NUMERACAO como int Identity. Basta colocar logo após o tipo, a palavra Identity. Caso a view já exista, insira a coluna: alter table TABELA add ID_NUMERACAO int Identity OBS.: Quando for fazer o insert, a coluna ID_NUMERACAO não precisa ser referenciada, por ser identity. Vamos a 2ª dúvida: A criação de tabelas virtuais pode ser realizada da seguinte forma: - Tabela virtual no tempo de execução -> @ Sintaxe: declare @NomeTabela table (Valor int) - Tabela virtual no tempo de execução, visível a outras instâncias -> @@ Sintaxe: declare @@NomeTabela table (Valor int) - Tabela virtual existente enquanto a instância existir -> # Sintaxe: create table #NomeTabela (valor int) - Tabela virtual existente enquanto a instância existir, visível a outras instâncias -> ## Sintaxe: create table ##NomeTabela (valor int) No seu caso, provavelmente criará a tabela virtual com #. Crie a tabela, insira os dados e depois dê um select para conferir os dados inseridos. Select * from #NomeTabela
  8. fulvio

    Outer joins

    Bom dia Amigo, rs.... tive este problema aqui na empresa também!! Seguinte: - você pode mudar o nível de compatibilidade do sql, forçando o 2005 a utilizar o =* e *= . Problema: o banco perde performance, pois o sql terá que realizar a conversão internamente. OU - O próprio Management Studio faz a conversão. Como: - Abra o aplicativo. - Na aba "Object Explorer", vá até ao BD. Abra as tabelas. - Clique com o botão direito em cima de qualquer tabela e escolha a opção "Open Table". - Os campos da tabela serão exibidos. Um ícone com o descritivo "SQL" aparecerá (Show SQL Pane). - Clique nele. - Copie e cole o seu sql com a sintaxe =* e *=. - Mande executar. Problema: o sql refaz o script. CONFIRA todos os resultados. Tivemos problemas nos resultados das conversões realizadas pelo sql. Isso mesmo. Quando pegamos o script remontado pelo SQL e o colocamos nos aplicativos, foram identificados alguns resultados incorretos. DICA: comente o script com a sintaxe antiga e coloque o script novo. Caso dê alguma dúvida posteriormente, o script original te auxiliará na resolução do problema. Estas conversões são trabalhosas e chatas mesmo. Terá que ser realizadas uma a uma, com a conferência dos resultados. Boa sorte!! :.)
  9. O script montado pelo fonte fica mais limpo, quando passado para execução. Ficou legal. Só tomar cuidado para a manutenção não ficar penosa. Se tiver um tempo e quiser melhorar, pode criar uma função no sql que recupera a soma de uma determinada coluna, passando o nome da coluna (por exemplo). Formas de implementação são várias.... :.) Qualquer dúvida, pode postar.
  10. Rs... se você utilizar o SUM com outros campos (igual ao exemplo que postei acima), obrigatoriamente você deverá utilizar o group by. Quando precisa referenciar muitas tabelas ou fazer muita manipulação de dados, as consultas ficam realmente muito grandes... Como se pode melhorar isso? - Criar temporárias para auxiliar nas manipulações de dados; - VIEW´s para facilitar acessos aos dados; - Funções, Procedures; etc.
  11. Boa tarde Paulo, Moverei seu tópico para o Fórum de PHP. Lá eles poderão lhe ajudar melhor.
  12. Se for muitos campos de retorno, provavelmente não retornará o resultado (as somas) que deseja. Caso não tenha como retornar as consultas e somas, pode-se fazer dois selects. Um pra retornar todas as somas, agrupando pela chave de controle e outra para retornar os demais campos. A outra forma de fazer é a que postou mesmo. Mas o "ruim" é a repetição dos scripts nos subselects. Caso a consulta fique muito grande, a sua manutenção também ficará penosa.
  13. Quando você utiliza o SUM associado a outras colunas de retorno, é obrigatório você utilizar o Group By. Por que disto? O sql não consegue identificar para qual campo o SUM será associado. Ex.: Select SUM( A ), SUM( B ), SUM ( C ) from Tabela --> Neste caso as somas funcionarão normalmente. Select SUM( A ), SUM( B ), SUM ( C ), D from Tabela group by D --> Neste caso, você terá que especificar o agrupamento (o campo D). Quer dizer que os dados iguais na coluna D serão agrupados e somados. Select SUM( A ), SUM( B ), SUM ( C ), D, E from Tabela group by D, E --> Neste caso, os dados iguais nas colunas D e E serão agrupados e somados. Qualquer dúvida, pode postar.
  14. Bom dia Alberto, Tem como vc "debugar" o aplicativo? Como o executável roda sem problemas no servidor, o problema pode estar relacionado com o caminho para acesso à base.
  15. Bom dia Flávio, Provavelmente é por causa do agrupamento. Dê uma olhada nos campos referenciados no Group By. Vai fazendo testes acrescentando e retirando os campos de agrupamento (apenas para entendimento).
  16. Bom dia Amigo, As versões são diferentes. Você não conseguirá fazer esta restauração. Algumas pessoas falam para alterar o nivel de compatibilidade, mas não terá jeito também. você terá que criar um script (ou SSIS) para importar/exportar os dados de uma base para outra.
  17. Boa tarde Alberto, Tudo beleza? O erro está dando quando você abre o aplicativo em Delphi?
  18. Boa tarde Flávio, Assim não dá, pois a verificação sintática do sql, após a cláusula WHERE espera um tipo específico (no caso uma coluna). Você está passando uma variável. Mesmo se a variável estiver o nome da coluna, o sql não consegue identificar. O interessante era você tratar estas informações no fonte. Passar para o SQL o script já pronto. Mas caso não tenha jeito, você terá que criar uma variável, atribuir o script à variável e mandar executar a variável. Ex.: declare @Sql varchar(50) declare @Complemento varchar(30) Set @Complemento = 'where cliente = 5' Set @Sql = 'select * from Tabela ' + @Complemento -- mostra o script montado select @Sql -- manda executar o script dentro da variável Exec (@sql) Outra coisa: no SUM que está fazendo nos subselects, tente retirá-los e colocá-los no corpo do select principal, utilizando o group by.
  19. Boa tarde Alisson, Não esquenta não. Isso acontece... rs. Qualquer dúvida que tiver, pode postar. :.)
  20. Boa tarde Alisson, você pode estar "logado" com um usuário sem permissão para criar o Banco. Dê uma olhada em: Menu iniciar>Programas>Microsoft Sql Server 2005>Configuration Tools>Sql Server Configuration Management>Sql Server 2005 Service Depois: Menu iniciar>Programas>Microsoft Sql Server 2005>Configuration Tools>Sql Server Suface Area Configuration
  21. Ok, sem problemas. Estamos aqui pra ajudar mesmo. :.) No exemplo que postei possuem apenas os objetos. Quando clicar nos objetos, você verá várias alternativas e formas de configuração. No obejto OLE DB Source, você terá no combo "Data Acess Mode" a opção "SQL Commnad". Na própria guia abrirá um campo para você colocar o seu select. Respodendo à sua pergunta, tem como você exportar os dados de um SELECT. Qualquer dúvida, pode postar!!
  22. Fiz um exemplo rápido no 2005. Um exemplo bem simples, mas dará uma noção de como criar uma SSIS. No exemplo apenas mostrei o obejto que cria a conexão com a base e o objeto de destino (no caso um arquivo TXT). Configure os objetos, veja as opções que possui, navegue nas abas, etc. As configurações dos objetos são bem intuitivas. Qualquer dúvida, pode postar. :.) https://docs.google.com/Doc?docid=0ATvXwxKT...NA&hl=pt_BR
×
×
  • Criar Novo...