--Desabilitar:
ALTER TABLE NOMETABELA NOCHECK CONSTRAINT ALL
--Habilitar:
ALTER TABLE NOMETABELA CHECK CONSTRAINT ALL
Blog com dicas úteis e práticas para soluções de problemas enfrentados durante o desenvolvimento de software. Blog focado em ASP.NET, C# e notícias sobre tecnologia.
Pesquisa
terça-feira, 26 de outubro de 2010
Como desativar Constraints
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.
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)