Pesquisa

terça-feira, 26 de outubro de 2010

Como desativar Constraints

--Desabilitar:
ALTER TABLE NOMETABELA NOCHECK CONSTRAINT ALL
--Habilitar:
ALTER TABLE NOMETABELA CHECK CONSTRAINT ALL




Limpar banco de dados / tabelas

Script para limpar todas as tabelas do banco de dados.

  • Deletar registros
  • Limpar os Idenficadores (CHECKIDENT)
BEGIN TRAN

PRINT 'BEGIN TRAN'

DECLARE @Tabela VARCHAR(50)
DECLARE @DadosAdmin CHAR(1)
DECLARE @ReSeed CHAR(1)
DECLARE @SQL VARCHAR(1000)

-- DECLARA O CURSOR QUE VAI PASSA PELAS TABELAS
DECLARE tables_cursor CURSOR FOR
SELECT name
from sysobjects
where xtype = 'U'
AND name IN()

-- ABRE O CURSOR E CARREGA AS VARIÁVEIS COM OS DADOS DA PRIMEIRA TABELA
OPEN tables_cursor
FETCH NEXT FROM tables_cursor INTO @Tabela

-- LOOP PARA PERCORRER TODAS AS TABELAS PRESENTES NO CURSOR
WHILE @@FETCH_STATUS = 0
BEGIN

-- SCRIPT PARA DESABILITAR TRIGGERS E CONSTRAINTS
SET @SQL = '
------------------------------------------------------------------
ALTER TABLE '
+ @Tabela + ' NOCHECK CONSTRAINT ALL
GO
ALTER TABLE '
+ @Tabela + ' DISABLE TRIGGER ALL
GO
------------------------------------------------------------------
'

--EXEC(@SQL)
PRINT(@SQL)


FETCH NEXT FROM tables_cursor INTO @Tabela
END

-- FECHA O CURSOR PARA RESETAR O LOOP
CLOSE tables_cursor

PRINT '
------------------------------------------------------------------
------------------------------------------------------------------
------ FIM DA DESABILITAÇÃO DE TRIGGERS E CONSTRAINTS ------
------------------------------------------------------------------
------------------------------------------------------------------
'


-- ABRE NOVAMENTE O CURSOR PARA EFETUAR O SEGUNDO LOOP
OPEN tables_cursor
FETCH NEXT FROM tables_cursor INTO @Tabela

WHILE @@FETCH_STATUS = 0
BEGIN

-- DELETA OS REGISTROS DA TABELA
SET @SQL = '------------------------------------------------------------------
DELETE FROM '
+ @Tabela
SET @ReSeed = '0'

-- HABILITA TRIGGERS E CONSTRAINTS
-- E RESETA A CONTAGEM SE A TABELA POSSUI UMA COLUNA IDENTITY
-- * SE A TABELA POSSUI DADOS DO ADMIN, A CONTAGEM DA IDENTITY RECEBE 1
-- PARA INICIAR EM 2 A PARTIR DO PRÓXIMO REGISTRO
SET @SQL = @SQL + '
GO
ALTER TABLE '
+ @Tabela + ' CHECK CONSTRAINT ALL
GO
ALTER TABLE '
+ @Tabela + ' ENABLE TRIGGER ALL
GO

IF OBJECTPROPERTY(OBJECT_ID('
'' + @Tabela + '''), ''TableHasIdentity'') = 1
BEGIN
DBCC CHECKIDENT ('
'' + @Tabela + ''',RESEED,' + @ReSeed + ')
END
GO
------------------------------------------------------------------
'

--EXEC(@SQL)
PRINT(@SQL)

FETCH NEXT FROM tables_cursor INTO @Tabela
END

-- EXEC(@SQL)
PRINT (@SQL)

CLOSE tables_cursor

DEALLOCATE tables_cursor

ROLLBACK TRAN

Créditos: Tiago Bandeira

terça-feira, 12 de outubro de 2010

BlogEngine.NET

BlogEngine.NET é uma ótima ferramenta para gerenciamento de conteúdo.

É fácil de configurar, personalizar e usar.

http://www.dotnetblogengine.net/

domingo, 3 de outubro de 2010

The 'System.Web.Security.SqlMembershipProvider' requires a database schema compatible with schema version '1'

 

A Exception The 'System.Web.Security.SqlMembershipProvider' requires a database schema compatible with schema version '1'.  However, the current database schema is not compatible with this version.  You may need to either install a compatible schema with aspnet_regsql.exe (available in the framework installation directory), or upgrade the provider to a newer version. ocorre quando a tabela aspnet_SchemaVersions não contém a versão do MembershipProvider.

Para inserir os registros na tabela aspnet_SchemaVersions segue abaixo o script:

insert into aspnet_SchemaVersions values('common', 1, 1)
insert into aspnet_SchemaVersions values('health monitoring', 1, 1)
insert into aspnet_SchemaVersions values('membership', 1, 1)
insert into aspnet_SchemaVersions values('personalization', 1, 1)
insert into aspnet_SchemaVersions values('profile', 1, 1)
insert into aspnet_SchemaVersions values('role manager', 1, 1)