Postagens

Mostrando postagens de abril, 2012

FOR SELECT no SQL Server

Pessoal, Muita gente (assim como eu) usa um recurso muito útil do Fibrebird que é o FOR SELECT, onde criamos uma loop e a cada passada ele carrega as variáveis com o registro atual e dentro podemos colocar outras instruções usando essas variáveis. Ao migrar para o SQL Server possivelmente você terá esse problema de "adaptação" se não tiver experiência na sintaxe do banco. Nesse caso temos que mudar algumas linhas no código para que o mesmo recurso funcione. Daí teremos que trabalhar com CURSORES... Veja como abaixo: Utilizo um exemplo onde tenho uma tabela de perfil de acesso e configuração do perfil, onde tenho outra tabela com minhas configurações base para os perfis, assim que inseridos (Quando tiver tempo posto tudo aqui em um tutorial). Ao inserir o perfil base, eu tenho que lançar esse registro em todos os perfis de acesso já cadastrados (numa trigger), daí faço o seguinte (usando o FOR SELECT no Firebird) NO FIREBIRD: CREATE OR ALTER TRIGGER PERFILACESSO_B

Limpar todas as tabelas do seu banco SQL Server

Para limpar todos os registros de suas tabelas no SQL Server de uma vez só, proceda com esses 3 simples comandos abaixo. 1) Pela Query   EXEC   sp_MSForEachTable  ' ALTER TABLE ? NOCHECK CONSTRAINT ALL' EXEC   sp_MSForEachTable  ' DELETE FROM ?' EXEC   sp_MSForEachTable  ' ALTER TABLE ? CHECK CONSTRAINT ALL' 2) Criando uma Stored Procedure CREATE   PROCEDURE  sp_EmplyAllTable AS    EXEC   sp_MSForEachTable  ' ALTER TABLE ? NOCHECK CONSTRAINT ALL'    EXEC   sp_MSForEachTable  ' DELETE FROM ?'    EXEC   sp_MSForEachTable  ' ALTER TABLE ? CHECK CONSTRAINT ALL' GO Mágico não? Até a próxima!

Limpar/Deletar todos os elementos (Tables/FK´s,etc) de um Banco no SQL Server

O código abaixo limpa todas as tables, fk´s, sp´s, etc no SQL Server... Bom proveito!! Abra uma nova query no SQL Server Management Studio Cole o script abaixo e execute /* EN: Drop allnon-system stored procs */ DECLARE @ name VARCHAR ( 128 ) DECLARE @ SQL VARCHAR ( 254 ) SELECT @ name = ( SELECT TOP 1 [ name ] FROM sysobjects WHERE [ type ] = 'P' AND category = 0 ORDER BY [ name ]) WHILE @ name is not null BEGIN     SELECT @ SQL = 'DROP PROCEDURE [dbo].[' + RTRIM (@ name ) + ']'     EXEC (@ SQL )     PRINT 'Dropped Procedure: ' + @ name     SELECT @ name = ( SELECT TOP 1 [ name ] FROM sysobjects WHERE [ type ] = 'P' AND category = 0 AND [ name ] > @ name ORDER BY [ name ]) END GO /* Drop all views */ DECLARE @ name VARCHAR ( 128 ) DECLARE @ SQL VARCHAR ( 254 ) SELECT @ name = ( SELECT TOP 1 [ name ] FROM sysobjects WHERE [ type ] = 'V' AND category =