Publicado por 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″
Enviado em store procedure | Deixar um comentário »
Publicado por 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
Enviado em store procedure | Deixar um comentário »
Publicado por 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
Enviado em sql server | Deixar um comentário »
Publicado por 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
Enviado em sql server | Deixar um comentário »