Karuta’s ASP & M$ SQLserver

Dicas, códigos e outras coisinhas de meus estudos para não esquecer…

Archive for maio \26\UTC 2009

sp_MSforeachdb e sp_MSforeachtable

Posted by karuta em maio 26, 2009

Sempre que precisamos executar alguma instrução em todos os databases ou em todas as tabelas de um database, logo pensamos em usar cursor. No entanto, existe duas stored procedures não documentadas que podem resolver este problema de forma bastante simples. Este artigo discute como usar as procedures sp_MSforeachdb e sp_MSforeachtable.

Para ler o artigo completo e saber como utilizar estas procedures, visite o link http://www.dbazine.com/sql/sql-articles/larsen5″

Anúncios

Posted in store procedure | Leave a Comment »

Procurando uma palavra nas stored procedures do database

Posted by karuta em maio 26, 2009

Em determinadas situações precisamos procurar uma palavra nas stored procedures de um determinado database. Abaixo segue um script em Transact-SQL que retorna o nome da(s) stored procedure(s). Atente para o fato de trocar DtgSchemaOBJECT pela palavra desejada:

declare @searchString varchar(100)

Set @searchString = ‘%’ + ‘DtgSchemaOBJECT’ + ‘%’

SELECT Distinct SO.Name
FROM sysobjects SO (NOLOCK)
INNER JOIN syscomments SC (NOLOCK) on SO.Id = SC.ID
AND SO.Type = ‘P’
AND SC.Text LIKE @searchString
ORDER BY SO.Name

Texto escrito por Alexandre Lopes para meus estudos de SQL SERVER

Posted in store procedure | Leave a Comment »

desabilitar CONSTRAINT tabelas

Posted by karuta em maio 8, 2009

SELECT ‘ALTER TABLE ‘ + TABLE_NAME + ‘ NOCHECK CONSTRAINT ALL’ FROM INFORMATION_SCHEMA.TABLES

SELECT ‘ALTER TABLE ‘ + TABLE_NAME + ‘ CHECK CONSTRAINT ALL’ FROM INFORMATION_SCHEMA.TABLES

Em tempo: podemo usar também essa SP:
CREATE PROCEDURE DeleteAllData
AS
EXEC sp_MSForEachTable ‘ALTER TABLE ? NOCHECK CONSTRAINT ALL’
EXEC sp_MSForEachTable ‘ALTER TABLE ? DISABLE TRIGGER ALL’
EXEC sp_MSForEachTable ‘DELETE FROM ?’
EXEC sp_MSForEachTable ‘ALTER TABLE ? CHECK CONSTRAINT ALL’
EXEC sp_MSForEachTable ‘ALTER TABLE ? ENABLE TRIGGER ALL’
EXEC sp_MSFOREACHTABLE ‘SELECT * FROM ?’
GO

Posted in sql server | Leave a Comment »

Alterar o collate do SQL Server

Posted by karuta em maio 8, 2009

ALTER DATABASE [base] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [base] COLLATE Latin1_General_CI_AS
ALTER DATABASE [base] SET MULTI_USER

Posted in sql server | Leave a Comment »