Ir para conteúdo
Fórum Script Brasil

fulvio

Moderadores
  • Total de itens

    1.218
  • Registro em

  • Última visita

Tudo que fulvio postou

  1. Achei os posts. Um fala sobre Linked: http://scriptbrasil.com.br/forum/index.php?showtopic=153933 O outro fala sobre SSIS. Nesse tem um link de exemplo que fiz: http://scriptbrasil.com.br/forum/index.php?showtopic=149989
  2. Bom dia Andre, Para fazer de forma programada, terá duas opções: Linked Server ou Integration . Se for Linked, tente fazer pelo Management mesmo. É bem intuitivo: - Abra o Management. - Abra a arvore do seu BD. - Vá em Server Objects. - Clique com o botão direito em Linked Servers, New. você poderá fazer também via INTEGRATION SERVICE (igual fez). A sigla utilizada é SSIS (que é a evolução da DTS no sql 2000). Um pouco mais complexo mesmo. Se não me engano, tem um post no Forum que expliquei como fazer uma integração... Se encontrar, colocarei o caminho aqui. :.) Se for Linked, faça o script e agende via JOB. Se for SSIS, você poderá salvar seu projeto e agendar via JOB.
  3. OBS.: se não me engano, a funcionalidade sp_send_dbmail está presente a partir do 2005.
  4. Bom dia Diego, Dê uma olhada no componente CDONTS.
  5. Bom dia Diego, Pela função upper do SQL você conseguirá fazer isso. O select ficará igual ao do seu exemplo. Mas você poderá colocar as maiusculas no VB6 também. Pode fazer a pesquisa normalmente no sql, e somente na hora da visualização no aplicativo, colocar em maiuscula. OBS.: respondi o tópico aqui pois o membro postou errado. :.)
  6. Bom dia Daniel, Pelo log você consegue.
  7. fulvio

    FOR UPDATE SQL Server

    Bom dia Jefries, Abra o Management do SQL, clique com o botão direito no nome da tabela e selecione "Open Table".
  8. Bom dia Jefries, rs... muitas perguntas!!! você não precisa pagar curso pra fazer a prova. No site da Microsoft você terá que pegar os locais onde as provas são realizadas. Basta você ir ao local, pagar e agendar a prova. Fará a prova no local mesmo e eles enviarão as respostas à Microsoft. O valor depende da certificação. Cada certificação tem um preço. Pode estudar sozinho. Não precisa fazer cursos... mas as provas são quentes... rs. você quer se certificar em que? A área q deseja certificar será o conteúdo da prova. Pode ser rede, BD, Sistema Operacional, etc. Vi q está bem perdidão!!! rs. Muitas pessoas não sabem, mas a Microsoft possui um Programa de Qualificação que se chama "PROFISSIONAL 5 ESTRELAS". Como funciona? você escolhe a área q deseja certificar. O site disponibiliza o material e tutorial. São 5 estrelas para adquirir. As 4 primeiras estrelas e as provas estão no próprio site e são gratuitas. A 5ª estrela é a prova de certificação. Aí terá q agendar e pagar. Dá uma olhada no link abaixo. Olha a área q deseja a certificação, vai estudando e fazendo as provas pra adquirir as 4 estrelas. http://technet.microsoft.com/pt-br/cc716287 Se tiver alguma dúvida, pode postar!! :.)
  9. Pegando o gancho do Evandro... se não for alterar a estrutura da procedure, aí poderá fazer um loop para retornar todos os valores que necessita.
  10. Bom dia Victor, você vai inserindo os dados em um arquivo DAT, ok? Como você disse, as informações vão sendo inseridas normalemente até o registro 1578. Depois não insere mais nada... O problema pode estar no arquivo DAT, e não na estrutura do SQL. Faça os testes e pesquise na net sobre a extensão DAT. Uma dica: altere o script de inserção para gravar menos dados no arquivo. Ao invés de colocar nome, tel, DataNasc, Nome Mae; coloque apenas 2 campos e mande gravar no arquivo DAT. Se não inserir mais de 1578 registros, pode estar relacionado com a quantidade de linhas, e não o volume de dados. Faça os testes... :.)
  11. Bom dia Lana, Não entendi qual é a constraint "integ_2" que está dando erro. Vá no Management e olhe a estrutura da tabela "Curso". Não deixe de observar indicies únicos também (o erro pode estar ai). Pesquise na estrutura pela descrição "integ_2" identificada no erro.
  12. Bom dia NIK, Isso vai depender de como estão distribuidas as bases. Eu tinha um documento com algumas explicações, mas não consegui achar... :.( Mas segue um comentário tirado no msdn: "Durante uma restauração offline, se o banco de dados especificado estiver em uso, RESTORE forçará a saída do usuário depois de um pequeno atraso. Para restauração online de um grupo de arquivos não primário, o banco de dados pode permanecer em uso, exceto quando o grupo de arquivos que está sendo restaurado for colocado offline. Todos os dados no banco de dados especificado são substituídos pelos dados restaurados." http://msdn.microsoft.com/pt-br/library/ms186858.aspx
  13. Bom dia Luiz, Não entendi quando você fala "tem que alocar em uma tabela nova". Você quer gravar o valor de retorno em uma tabela? O processo rodará quando? Tem periodicidade?
  14. Boa tarde Tarsio, A trigger será acionada apenas quando for realizar Insert? Olhe se no Update também não deverá ser acionada... No comando que manipulará a tabela, você passará vários valores, referenciando várias colunas. Estas mesmas informações você conseguirá visualizar na tabela INSERTED. Ao chamar a trigger, a tabela INSERTED será criada pelo sql. É nela que estarão os dados (select * from inserted). Idenfitique os campos que precisará "bater" e faça seu script. :.)
  15. Isso aí. Perceba que coloco um "apelido" para a tabela Regiao, que é "Pai" e "Filho". Este "apelido" de chama ALIAS. É a mesma coisa quando falo "GrupoRegiao g" ou "GrupoRegiao AS g" (o AS pode ser suprimido). Se não colocasse, por exemplo o "g" como Alias, toda vez que fizesse referência à tabela, teria que digitá-la. Ex.: GrupoRegiao.idRegiaoPai = idRegiao and GrupoRegiao.idRegiaoFilho = ... Para facilitar, coloco o "g" como Alias. Ficaria: g.idRegiaoPai = idRegiao and g.idRegiaoFilho = ... Quando você referencia a mesma tabela no select (igual no seu caso), a utilização do Alias é imprescindível. Se não usar o sql dará erro de ambiguidade, pois não saberá qual a coluna manipular.
  16. Assim também dá. É a mesma coisa de utilizar o JOIN (padrão ANSI). Apenas a sintaxe é diferente... No exemplo que postou, parece que ficou faltando o final, pois depois do ultimo AND o campo iDRegiaoPai não possui uma relação. Na cláusula FROM você referencia duas vezes a tabela GrupoRegiao e três vezes a tabela Regiao. Creio que não haveria necessidade. Se referenciar as tabelas e não realizar a correlação entre as chaves, o sql irá exponenciar o resultado. Duas formas de escrever a mesma pesquisa: SELECT Pai.Nome, Filho.Nome FROM GrupoRegiao g INNER JOIN regiao Pai ON g.idRegiaoPai = Pai.idRegiao INNER JOIN regiao Filho ON g.idRegiaoFilho = Filho.idRegiao SELECT Pai.Nome, Filho.Nome FROM GrupoRegiao g, regiao Pai, regiao Filho WHERE g.idRegiaoPai = Pai.idRegiao and g.idRegiaoFilho = Filho.idRegiao
  17. Bom dia Vanessa, É... me parece que isto é trabalho de faculdade... rs. Sempre falo aqui no Forum que não gosto de ajudar quando é trabalho. Este é o momento de estudar e aprender!! Uma dica: você terá que referenciar a tabela Regiao duas vezes. Uma pra recuperar o Pai e outra pro Filho. Ex.: SELECT Pai.Nome, Filho.Nome FROM GrupoRegiao g INNER JOIN regiao Pai ON g.idRegiaoPai = Pai.idRegiao INNER JOIN regiao Filho ON g.idRegiaoFilho = Filho.idRegiao
  18. Boa tarde Santin, Tenho um note que possui uma VM do SQL 2008. Em alguns testes, crio uma como server e outras como client. Roda sem problemas. O bom de VM é que, se der pau, cria outra!! :.)
  19. Boa tarde Luiz, Esta função não é "nativa" do sql. É uma implementação. Li o script: me parece que ela recupera a data mais próxima da pesquisada, desde que a data pesquisada já tenha ultrapassada uma das datas da tabela T. Caso a data seja igual a uma data da tabela T, será listado dois resultados (ela mesma e a mais próxima). O que não entendi é por que a data '20030701' retorna dois valores.... parece que quando a data está exatamente entre duas datas, ele lista as duas. Mas realizei testes com outras datas e não deu certo... :.( Quando implemento alguma coisa em sql, tento fazê-la. Alguns exemplos na net são para nortear ou para dar idéias de uma melhor implementação. Nunca peguei códigos prontos e utililizei.
  20. Boa tarde Luiz, Não conheço a função. Qual a sua sintaxe?
  21. Bom dia Gilberto, Seria apenas uma temporária, com as colunas que necessita. Segue exemplo com explicações. CREATE TABLE #Temporaria (Cod_Produto INT, CodProduto INT, Descricao VARCHAR(xxx), preço MONEY, etc...., Media3 INT) --Vai separando os subselects e fazendo passo a passo. Tente fazer o mínimo possível de selects. -- Um exemplo: INSERT INTO #Temporaria (Media3) select unidades from rx.dbo.hist_per_produto where ano = 2010 and periodo = 4 and cod_produto = p.cod_produto -- Atenção: o resultado do select acima tem que ser um valor, porque senão dará erro. -- Pra ir conferindo os valores, poderá dar um select na temporária: SELECT * FROM #Temporaria
  22. Boa tarde Pedro, É... realmente em um select não consegui resolver. No exemplo que postou, perceba a estaca 16: a maior data é o Id=6858, mas o maior Id é o 6859. Se fizer apenas em um select, o resultado não constará esta estaca. Isto se deve por causa da interseção entre os MAX´s. O que pode-se fazer: criar uma temporária para armazenar o 1º resultado. A partir dele, fazer o 2º filtro: CREATE TABLE #Tmp (id INT, estaca INT, estatus INT, DATA DATETIME, usuario INT) INSERT INTO #Tmp SELECT L1.id, L1.estaca, L1.estatus, L1.data, L1.usuario FROM #historico As L1 INNER JOIN (SELECT MAX(data) As UltimaData FROM #historico GROUP BY estaca) As L2 ON L1.data = L2.UltimaData SELECT L1.estaca, L1.estatus, L1.data, L1.usuario FROM #Tmp As L1 INNER JOIN (SELECT MAX(id) as Id FROM #Tmp GROUP BY estaca) L2 ON L1.id = L2.id Outra coisa. Percebi que a DATA não possui horas. DICAS: - No comando de INSERT na tabela, pode-se alterar os dados. Ao invés de passar apenas a data (onde o sql zera a hora) passar também dados de hora, minuto, segundo. - Caso não tenha como fazer esta mudança, criar uma trigger com a seguinte cláusula: se a DATA for igual para o mesmo ID, pegar o MAX da DATA do ID e acrescentar 1 segundo. Para estas duas alterações acima, apenas uma select com MAX da DATA resolverá o problema! :.) Espero que ajude!!
  23. Bom dia Pedro, Na sexta-feira tentei resolver este problema. Desculpe, mas acabei salvando na minha máquina e esqueçendo... rs. O problema é que há dois filtros na consulta. você quer o MAX da data e se for igual, quer o MAX do Id. Tentei resolver utilizando um select apenas mas não consegui. Consegui o MAX da Data, mas o Id vinha aleatório. Vou tentar resolver novamente.... :.)
  24. Bom dia Luiz, você disse tudo... rs. Se sua base é muito grande, fica praticamente inviável você fazer esta pesquisa. Mesmo sendo procedure, o tempo de resposta fica praticamente inviável. O que pode ser feito também é a montagem dinâmica do script para cada tabela/campo. Aí você teria como resposta N selects. Poderia rodar passo a passo ou em blocos. Tenho mais de 1 ano no Forum. Se conseguiu a procedure neste intervalo, provavelmente não foi aqui. :.)
  25. Bom dia Fernando, Já tentou o "MS SQL Server Password Unlocker"?
×
×
  • Criar Novo...