Scritps Úteis
Ir para navegação
Ir para pesquisar
- Listar agendamentos de importações de todas as empresas num único script (Caso você queira adicionar mais empresas só seguir o modelo)
select 'bd_ssm_DCA', * from bd_ssm_DCA..CONFIGURACAO_GERA_REGISTRO_AUTO union all select 'bd_ssm_CAMIL', * from bd_ssm_CAMIL..CONFIGURACAO_GERA_REGISTRO_AUTO union all select 'bd_ssm_BEVILAQUA', * from bd_ssm_BEVILAQUA..CONFIGURACAO_GERA_REGISTRO_AUTO union all select 'bd_ssm_GUARAVES', * from bd_ssm_GUARAVES..CONFIGURACAO_GERA_REGISTRO_AUTO union all select 'bd_ssm_PAULUS', * from bd_ssm_PAULUS..CONFIGURACAO_GERA_REGISTRO_AUTO
- Ver todas as bases que utilizam a geração de registro automático
sp_update_databases ' insert into ##tabela select db_name(),* from CONFIGURACAO_GERA_REGISTRO_AUTO', 'org_venda_cliente' </pre *Update com select e join: <pre> UPDATE PEDIDO SET PEDIDO.NM_CLIENTE = (C.NM_CLIENTE) from PEDIDO inner join CLIENTE C on PEDIDO.CD_CLIENTE = C.CD_CLIENTE WHERE PEDIDO.DT_EMISSAO >= '2016-10-01' AND PEDIDO.NM_CLIENTE IS NULL
- Atualizar Nome da Tabela
EXEC sp_rename 'ITEM_PEDIDO_REMESSA_FUTURA', 'ITEM_PED_REMESSA_FUTURA';
- Remover Foreign Keys
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders
ALTER TABLE ITEM_PEDIDO_EXCLUIDO DROP CONSTRAINT FK_SAV_ITEM__PEDIDO_PEDIDO_DEL;
- Retornar consulta por banco de dados do tamanho usado no banco
select 'Use '+name+';' + 'Exec SP_SpaceUsed ;' from sys.databases where name like 'bd_ssm_%' and state_desc = 'online' and name not like '%prontaentrega%' and name not like '%adm%'
- Lista os Vendedores da Hierárquia do Supervisor passado no Parâmetro
SELECT cd_vendedor [Código],
nm_vendedor [Vendedor]
FROM fn_obter_vendedores_supervisor(#codigoSupervisor#)
- Lista os Supervisores Acima da Hierárquia do Supervisor passado no Parâmetro, incluindo ele mesmo
SELECT S.cd_supervisor [Código],
S.nm_supervisor [Supervisor]
FROM fn_obter_supervisor_supervisores(#codigoSupervisor#) FOSS
INNER JOIN SUPERVISOR S
ON FOSS.cd_supervisor = S.cd_supervisor
- Lista os Supervisores Abaixo da Hierárquia do Supervisor passado no Parâmetro, incluindo ele mesmo
SELECT S.cd_supervisor [Código],
S.nm_supervisor [Supervisor]
FROM fn_obter_supervisores_supervisor(#codigoSupervisor#) FOSS
INNER JOIN SUPERVISOR S
ON FOSS.cd_supervisor = S.cd_supervisor
- Verificar processos que estão travando o banco e ver a query do processo que está travado
- Selecionar os 100 primeiros processos bloqueados no banco
select TOP 100 * from sys.sysprocesses where blocked <> 0
- Selecionar todos os processos bloqueados no banco ordenados por spid
select spid, blocked, hostname=left(hostname,20), program_name=left(program_name,20),
WaitTime_Seg = convert(int,(waittime/1000)) ,open_tran, status
From master.dbo.sysprocesses
where blocked > 0
order by spid
- Saber quais os processos estão bloqueado outros e não estão sendo bloqueados
select db_name(dbid), *
from sys.sysprocesses
where spid in (
select blocked
from sys.sysprocesses
where blocked > 0)
and blocked = 0
- Detalhar um processo
EXEC sp_who2 252
- Ver a query que está sendo executada por um processo (Parâmetro spid)
DBCC INPUTBUFFER(6001)
- Então você precisa verificar quais processos estão rodando em um determinado banco de dados:
- Lista todos os processos existentes em uma determinada base de dados
DECLARE @database VARCHAR(100) = 'bd_ssm_suabase' -- INSIRA AQUI O NOME DO BANCO DE DADOS
DECLARE @processosTemp TABLE
(
spid SMALLINT,
ecid SMALLINT,
status NCHAR(30),
loginname NCHAR(128),
hostname NCHAR(128),
blk CHAR(5),
dbname NCHAR(128),
cmd NCHAR(16),
request_id INT
)
INSERT INTO @processosTemp
EXEC Sp_who
SELECT *
FROM @processosTemp
WHERE dbname = @database
ORDER BY spid
- Aí você precisa remover essa base - faça esse procedimento apenas no ambiente de teste - mas existem processos bloqueando essa remoção. Então você deverá remover os mesmos processos referentes a consulta acima, para depois DROPAR a base.
declare @execSql varchar(1000), @databaseName varchar(100)
set @databaseName = 'bd_ssm_suabase' -- INSIRA O NOME DA BASE QUE QUER MATAR SEUS PROCESSOS EM ABERTO
set @execSql = ''
select @execSql = @execSql + 'kill ' + convert(char(10), spid) + CHAR(13)+CHAR(10)
from master.dbo.sysprocesses
where db_name(dbid) = @databaseName
and
DBID <> 0
and
spid <> @@spid
order by spid
exec(@execSql)
- Script para verificar se exste alguma configuração para algum serviço de envio de e-mail ativado
SELECT * FROM CONFIGURACAO WHERE DS_CHAVE = 'ENVIA_EMAIL_CLIENTE_PEDIDO_EXPORTADO' SELECT * FROM CONFIGURACAO WHERE DS_CHAVE = 'ENVIA_EMAIL_CLIENTE_PEDIDO_NAO_EFETIVADO' SELECT * FROM CONFIGURACAO WHERE DS_CHAVE = 'ENVIA_EMAIL_FINANC_NOVO_CLIENTE' SELECT * FROM CONFIGURACAO WHERE DS_CHAVE = 'ENVIA_EMAIL_SUPERVISOR_PEDIDO_PENDENTE' SELECT * FROM CONFIGURACAO WHERE DS_CHAVE = 'CONDICAO_PAGAMENTO_ESPECIAL' SELECT * FROM CONFIGURACAO WHERE DS_CHAVE = 'SP_ENVIA_EMAIL_CLIENTE_PEDIDO_CRIACAO'
- Script para ver todas as foreign keys do banco
SELECT KCU1.CONSTRAINT_NAME AS 'FK_Nome_Constraint' , KCU1.TABLE_NAME AS 'FK_Nome_Tabela' , KCU1.COLUMN_NAME AS 'FK_Nome_Coluna' , FK.is_disabled AS 'FK_Esta_Desativada' , KCU2.CONSTRAINT_NAME AS 'PK_Nome_Constraint_Referenciada' , KCU2.TABLE_NAME AS 'PK_Nome_Tabela_Referenciada' , KCU2.COLUMN_NAME AS 'PK_Nome_Coluna_Referenciada' FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU1 ON KCU1.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG AND KCU1.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA AND KCU1.CONSTRAINT_NAME = RC.CONSTRAINT_NAME JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU2 ON KCU2.CONSTRAINT_CATALOG = RC.UNIQUE_CONSTRAINT_CATALOG AND KCU2.CONSTRAINT_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA AND KCU2.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME AND KCU2.ORDINAL_POSITION = KCU1.ORDINAL_POSITION JOIN sys.foreign_keys FK on FK.name = KCU1.CONSTRAINT_NAME --where KCU1.CONSTRAINT_NAME like '%FK_PEDIDO_EXCLUIDO__PEDIDO%' Order by KCU1.TABLE_NAME
- Script para Cadastro de Menu do Portal
-- SELECT * FROM MENU WHERE DS_MENU IN('Cadastro', 'Bonificação','Associada ao Pedido')
-- UPDATE MENU SET DS_URL = null WHERE CD_MENU = 130
-- SELECT * FROM MENU WHERE CD_MENU_PAI = 1
-- INCLUSÃO DE MENU --
DECLARE @dsMenu VARCHAR(100),
@dsMenuPai VARCHAR(100),
@cdMenuPai INT
SELECT @dsMenu = 'Parâmetros de Configuração',
@dsMenuPai = 'Cadastro'
SELECT @dsMenu = LTRIM(RTRIM(@dsMenu)),
@dsMenuPai = LTRIM(RTRIM(@dsMenuPai))
SET @cdMenuPai = (SELECT TOP 1 cd_menu
FROM menu
WHERE ds_menu = @dsMenuPai)
IF ( @cdMenuPai IS NOT NULL )
BEGIN
IF NOT EXISTS (SELECT 1
FROM menu
WHERE ds_menu = @dsMenu
AND cd_menu_pai = @cdMenuPai)
BEGIN
INSERT INTO menu
(cd_menu,
ds_menu,
ds_url,
ds_param,
cd_menu_pai,
id_ativo)
SELECT Max(Isnull(cd_menu, 0)) + 1,
@dsMenu,
@dsMenu,
NULL,
@cdMenuPai,
'S'
FROM menu
PRINT '----------------- MENU CADASTRADO COM SUCESSO -----------------'
PRINT 'FOI CADASTRADO O SUBMENU "'+ @dsMenu + '" NO MENU "'+ @dsMenuPai + '"!'
END
ELSE
BEGIN
PRINT '----------------- FALHA AO CADASTRAR MENU -----------------'
PRINT 'JÁ EXISTE O SUBMENU "'+ @dsMenu + '" NO MENU "'+ @dsMenuPai + '"!'
END
END
- Conjunto de Selects para visualizar se há algum desconto sendo persistido na base do Mobile
select * from desconto_produto; select * from DESCONTO_ORG_PRODUTO; select * from DESCONTO_MEGAZORD; select * from DESCONTO_ICMS_DIF; select * from DESCONTO_CLIENTE_FORNEC; select * from DESCONTO_CLIENTE; select * from DESCONTO_FORNECEDOR; select * from DESCONTO_MEGAZORD_SEGMENTO; select * from DESCONTO_UF; select * from desco_cliente_familia; select * from DESCO_GRUP_CLIEN_FAMIL; select * from desconto_cliente; select * from DESCO_VENDEDOR_FAMILIA; select * from DESCO_GRUP_CLIEN_FAMIL; select * from DESCO_GRUP_CLIENT_VEND; select * from DESCO_GRUPO_CLIEN_PROD; select * from DESCONTO_VEND_PRODUTO; select * from DESCONTO_UF_PRODUTO; select * from DESCONTO_UF_FAMILIA; select * from DESCONTO_CLIENTE_PRODUT;
- Select para contar os registros de uma tabela sem derrubar o banco
SELECT SUM (row_count)
FROM sys.dm_db_partition_stats
WHERE object_id=OBJECT_ID('log_alteracao_usuario')
AND (index_id=0 or index_id=1);
- Desabilitar as triggers de geração de registros
select 'alter table '+ OBJECT_NAME(parent_id)+ ' disable trigger '+name from sys.triggers where name like 'log%' order by 1, name
- Habilitar as triggers de geração de registros
select 'alter table '+ OBJECT_NAME(parent_id)+ ' enable trigger '+name from sys.triggers where name like 'log%' order by 1, name
- Consulta para ver os processos em execução no banco da camil
select DB_NAME(dbid),* from sys.sysprocesses where program_name like '%ssmicro%' and status like '%run%' dbcc inputbuffer(61) dbcc inputbuffer(65) guarda essa consulta
- Listar todas as bases ativas criando um use bd_ssm_nomeempresa
select 'Use '+name+';' from sys.databases where name like 'bd_ssm_%' and state_desc = 'online' and name not like '%prontaentrega%' and name not like '%adm%' order by name asc;
- Contar os registros da log_alteracao_usuario sem parar o banco de dados
SELECT SUM (row_count)
FROM sys.dm_db_partition_stats
WHERE object_id=OBJECT_ID('log_alteracao_usuario')
AND (index_id=0 or index_id=1);
- Truncar tabela de log
TRUNCATE TABLE LOG_ALTERACAO_USUARIO;
- Usando a sys.databases de forma inteligente para economizar trabalho
select 'use ' + name + '; select ' +name + ',* from CAMPO where cd_campo = 23;' from sys.databases where name like 'bd_ssm_%' and state_desc <> 'OFFLINE'
- Listar todos os bancos de dados de empresa da softsite
select name from sys.databases where name like 'bd_ssm_%';
- Limpeza de cadastros do ADM
SELECT E.NM_EMPRESA, EB.DS_DATABASE, * FROM EMPRESA E INNER JOIN EMPRESA_BD EB ON (E.CD_EMPRESA = EB.CD_EMPRESA) INNER JOIN sys.sysdatabases SD ON (SD.name = EB.DS_DATABASE)
SELECT E.CD_EMPRESA, E.NM_EMPRESA, EB.DS_DATABASE, * FROM EMPRESA E LEFT JOIN EMPRESA_BD EB ON (E.CD_EMPRESA = EB.CD_EMPRESA) LEFT JOIN sys.sysdatabases SD ON (SD.name = EB.DS_DATABASE) WHERE SD.name IS NULL
- Tabelas que tem que ser analisadas
EMPRESA_SYNC_SISTEMA EMPRESA_SYNC_BD EMPRESA_SISTEMA EMPRESA_BD EMPRESA
- Deletes necessários para limpar as bases
DELETE FROM EMPRESA_SYNC_BD WHERE CD_EMPRESA IN (1129) DELETE FROM EMPRESA_BD WHERE CD_EMPRESA IN (1129) DELETE FROM EMPRESA_SYNC_SISTEMA WHERE CD_EMPRESA IN (1129) DELETE FROM EMPRESA_SISTEMA WHERE CD_EMPRESA IN (1129) DELETE FROM EMPRESA WHERE CD_EMPRESA IN (1129)
- Verificar quantidade de conexões abertas por base utilizadas pelo portal
select db_name(dbid), count(*) from sys.sysprocesses where 1=1 --and db_name(dbid) = 'bd_ssm_criasim' and program_name = 'jTDS' group by db_name(dbid)
- Descobrir exatamente qual script está sendo executado no momento dado um processo qualquer
DECLARE @comandoSQL VARCHAR(8000) SET @comandoSQL = (SELECT CAST([TEXT] AS VARCHAR(8000)) FROM ::fn_get_sql((SELECT [sql_handle] FROM sysprocesses where spid = 1071))) select @comandoSQL
- Descobrir exatamente qual script está sendo executado no momento dado um processo qualquer quando existem mais de um script sendo executado
em background para o spid passado
DECLARE @comandoSQL VARCHAR(8000) DECLARE @tableComandoSQL TABLE (comando VARCHAR(8000)) --SET @comandoSQL = (SELECT CAST([TEXT] AS VARCHAR(8000)) --FROM ::fn_get_sql((SELECT [sql_handle] FROM sysprocesses where spid = 1071))) --select @comandoSQL INSERT INTO @tableComandoSQL SELECT CAST([TEXT] AS VARCHAR(8000)) FROM ::fn_get_sql((SELECT [sql_handle] FROM sysprocesses where spid = 1071)) SELECT * FROM @tableComandoSQL
- Comando para gerar os drops das Triggers do claudus
select ' drop trigger ', tr.name from sys.sysobjects tr inner join sys.sysobjects tb on tr.parent_obj = tb.id and tb.xtype = 'U' where tr.xtype = 'tr' and tr.name like 'TR_AUDIT%'
- Remover empresas do import que não estão mais acessíveis na base
use bd_ssm_adm select * --update es set id_realiza_importacao from EMPRESA_SISTEMA es inner join empresa_bd bd on es.CD_EMPRESA = bd.CD_EMPRESA left join sys.databases d on d.name = bd.DS_DATABASE collate Latin1_General_CI_AS where (d.name is null or d.snapshot_isolation_state_desc = 'OFF')
- Listar algo em todas as bases numa consulta só
select 'select ''' + name + ''', * from ' + name + '.dbo.INTERFACEERPCONFIGURACAOPARAMETRO where VR_PARAMETRO NOT LIKE ''%PEDIDO%ITEM_PEDIDO%'' UNION ALL' from sys.databases where name like 'bd_ssm_%' and state_desc <> 'OFFLINE' and (name not like '%pronta%' AND name not like 'bd_ssm_adm')