Scritps Úteis
Ir para navegação
Ir para pesquisar
- Comando pra saber se uma porta está em uso no windows
netstat -ano | find ":Required port number netstat -ano | find "25"
- 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)
- Saber quais as bases estão vencidas que procedure vai apagar
USE bd_ssm_adm; SELECT s.name, ub.DATA_EXPIRACAO FROM sys.sysdatabases s LEFT JOIN USUARIO_BASE ub ON s.name = ub.nm_base WHERE s.name LIKE 'bd_ssm_%' AND s.name NOT LIKE 'bd_ssm_adm' AND (ub.nm_base IS NULL OR ub.DATA_EXPIRACAO < GETDATE()) ORDER BY crdate ASC
- Listar dados de todas as bases dinamicamente numa consulta só usando union all
select 'SELECT ''' + name + ''' ,* from '+name+'..INTERFACEERPCONFIGURACAOPARAMETRO UNION ALL' from sys.databases where name like 'bd_ssm_%' and state_desc = 'online' and name not like '%prontaentrega%' and name not like '%adm%' and name not like '%login%' order by name asc;
- Checar qual versão determinado vendedor tá usando
select cd_usuario,
substring(ds_log, CHARINDEX('@', ds_log) + 1, charindex(':', ds_log, CHARINDEX('@', ds_log) + 1) - CHARINDEX('@', ds_log) - 1)
from LOG_SINCRONISMO with(nolock)
order by 2
- 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 top 1 [sql_handle] FROM sys.sysprocesses where spid = 1071)) SELECT * FROM @tableComandoSQL
- Ver o tamanho das tabelas
SELECT
OBJECT_NAME(object_id) As Tabela, Rows As Linhas,
SUM(Total_Pages * 8) As Reservado,
SUM(CASE WHEN Index_ID > 1 THEN 0 ELSE Data_Pages * 8 END) As Dados,
SUM(Used_Pages * 8) -
SUM(CASE WHEN Index_ID > 1 THEN 0 ELSE Data_Pages * 8 END) As Indice,
SUM((Total_Pages - Used_Pages) * 8) As NaoUtilizado
FROM
sys.partitions As P
INNER JOIN sys.allocation_units As A ON P.hobt_id = A.container_id
GROUP BY OBJECT_NAME(object_id), Rows
ORDER BY DADOS DESC
- 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
select * from sys.sysobjects where name = 'FK__LISTA_PRO__CD_SE__361203C5' SELECT * FROM sys.sysobjects where ID = 907150277 ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders
ALTER TABLE ITEM_PEDIDO_EXCLUIDO DROP CONSTRAINT FK_SAV_ITEM__PEDIDO_PEDIDO_DEL;
- Remover Foreign Keys Dinamicamente
SELECT DISTINCT 'ALTER TABLE ' + KCU1.TABLE_NAME + ' DROP CONSTRAINT ' + KCU1.CONSTRAINT_NAME 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
- 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
- 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
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 COLLATE SQL_Latin1_General_CP1_CI_AS) INNER JOIN sys.databases SBD ON (SBD.name = EB.DS_DATABASE COLLATE SQL_Latin1_General_CP1_CI_AS) WHERE state_desc = 'OFFLINE'
- Tabelas que tem que ser analisadas
EMPRESA_SYNC_SISTEMA EMPRESA_SYNC_BD EMPRESA_SISTEMA EMPRESA_BD EMPRESA
- Deletes necessários para limpar as bases
Na base ADM: select * from empresa order by nm_empresa asc
use bd_ssm_adm; SELECT * FROM EMPRESA WHERE NM_EMPRESA LIKE 'fiorehomolog' --619 DELETE FROM EMPRESA_SYNC_BD WHERE CD_EMPRESA IN (619) DELETE FROM EMPRESA_BD WHERE CD_EMPRESA IN (619) DELETE FROM EMPRESA_SYNC_SISTEMA WHERE CD_EMPRESA IN (619) DELETE FROM EMPRESA_SISTEMA WHERE CD_EMPRESA IN (619) DELETE FROM EMPRESA WHERE CD_EMPRESA IN (619) USE bd_ssm_login; SELECT * FROM bd_ssm_login..USUARIO_EMPRESA WHERE NM_EMPRESA LIKE 'fiorehomolog' DELETE FROM MODULO_EMPRESA WHERE CD_EMPRESA IN (619) DELETE FROM USUARIO WHERE CD_USUARIO IN (1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157) DELETE FROM USUARIO_EMPRESA WHERE NM_EMPRESA = 'fiorehomolog'
- 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)
- 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')
- Descobrindo as empresas que importam
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')
- UPDATE para atualizar dados duplicados da tabela 001
UPDATE LISTA_PRODUTO_001
SET data_delete = data_insert+('00:00:00.200')
where id in (
-2146273629,
-2146273628,
-2146273627,
-2146273626,
-2146273625,
-2146273624,
-2146273623,
-2146273622,
-2146273621)
- Comando para concatenar dentro do group by
STUFF
SELECT NM_ESTADO,
NM_CIDADE,
STUFF(
(SELECT DISTINCT ',' + NM_FANTASIA
FROM cliente
WHERE NM_ESTADO = a.NM_ESTADO
AND NM_CIDADE = a.NM_CIDADE
FOR XML PATH ('')) , 1, 1, '') AS URLList
FROM cliente AS a
WHERE NM_ESTADO = 'CE'
AND NM_CIDADE = 'fortaleza'
GROUP BY NM_ESTADO,
NM_CIDADE
- Template base pra criar o script de uma tabela NOVA pro TJ
/* Criar a tabela TMP pra empresas que utilizam import */
CREATE TABLE [dbo].[DESCONTO_LOTE_OV_TP_TMP]
(
CD_LOTE int NOT NULL,
CD_ORG_VENDA VARCHAR(20) COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI NOT NULL,
CD_TAB_PRECO INT NOT NULL,
PR_DESCONTO DECIMAL(18, 6) NOT NULL,
CONSTRAINT [PK_DESCONTO_LOTE_OV_TP_TMP] PRIMARY KEY CLUSTERED (
[CD_LOTE] ASC,
[CD_ORG_VENDA] ASC,
[CD_TAB_PRECO] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
/* Criar a tabela de LOG */
CREATE TABLE LOG_DESCONTO_LOTE_OV_TP
(
CD_LOG INT IDENTITY PRIMARY KEY
,DT_LOG DATETIME NOT NULL
,TP_OPERACAO VARCHAR(1) NOT NULL
,ID_KEY VARCHAR(200) NOT NULL
,CD_LOTE int
,CD_ORG_VENDA VARCHAR(20)
,CD_TAB_PRECO INT)
/* Criar tabela 001 seguindo o padrão */
CREATE TABLE [dbo].[DESCONTO_LOTE_OV_TP_001]
(
[id] [int] IDENTITY(-2147483648,1) NOT NULL,
CD_LOTE INT NOT NULL,
CD_ORG_VENDA VARCHAR(20) COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI NOT NULL,
CD_TAB_PRECO INT NOT NULL,
PR_DESCONTO DECIMAL(18, 6) NOT NULL,
[data_insert] [datetime] NOT NULL,
[data_update] [datetime] NULL,
[data_delete] [datetime] NULL,
PRIMARY KEY NONCLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
/* Adicionar Index */
CREATE CLUSTERED INDEX PK_DESCONTO_LOTE_OV_TP ON DESCONTO_LOTE_OV_TP_001 (CD_LOTE ASC, CD_ORG_VENDA ASC, CD_TAB_PRECO ASC)
/* Adicionar constraint */
ALTER TABLE [dbo].[DESCONTO_LOTE_OV_TP_001] ADD CONSTRAINT [DF_DATA_INSERCAO_DESCONTO] DEFAULT (getdate()) FOR [data_insert]
/* Criar trigger na tabela nova adicionando os campos necessários */
CREATE TRIGGER [dbo].[TR_TJ_UPDATE_DESCONTO_LOTE_OV_TP]
ON [dbo].[DESCONTO_LOTE_OV_TP_001]
instead OF UPDATE
AS
BEGIN
SET nocount ON;
UPDATE t
SET t.data_update = case when s.data_delete is null then Getdate() else t.data_update end ,
T.CD_LOTE = S.CD_LOTE,
T.CD_ORG_VENDA = S.CD_ORG_VENDA,
T.CD_TAB_PRECO = S.CD_TAB_PRECO,
T.PR_DESCONTO = S.PR_DESCONTO,
t.data_delete = s.data_delete
FROM DESCONTO_LOTE_OV_TP_001 t
INNER JOIN inserted s
ON ( t.id = s.id )
END
/* Criar a view TJ */
CREATE VIEW [dbo].[DESCONTO_LOTE_OV_TP_TJ]
AS
SELECT id,
CD_LOTE, CD_ORG_VENDA, CD_TAB_PRECO, PR_DESCONTO
FROM DESCONTO_LOTE_OV_TP_001
WHERE data_delete IS NULL
/* Criar Trigger da view */
CREATE TRIGGER [dbo].[TR_TJ_DELETE_DESCONTO_LOTE_OV_TP]
ON [dbo].[DESCONTO_LOTE_OV_TP_TJ]
instead OF DELETE
AS
BEGIN
SET nocount ON;
UPDATE t
SET data_delete = Getdate()
FROM deleted s
INNER JOIN DESCONTO_LOTE_OV_TP_001 t
ON s.id = t.id
END
/* Criar a view */
CREATE VIEW [dbo].[DESCONTO_LOTE_OV_TP]
AS
SELECT CD_LOTE, CD_ORG_VENDA, CD_TAB_PRECO, PR_DESCONTO
FROM DESCONTO_LOTE_OV_TP_tj
/* Criar a função de navegação */
CREATE FUNCTION fn_REGISTRO_SYNC_DESCONTO_LOTE_OV_TP(@ID_VENDEDOR INT,
@DT_LAST_SINC DATETIME)
RETURNS TABLE
AS
RETURN
(SELECT DLOT.id,
DLOT.CD_LOTE,
DLOT.CD_ORG_VENDA,
DLOT.CD_TAB_PRECO,
DLOT.PR_DESCONTO,
DLOT.DATA_DELETE
FROM DESCONTO_LOTE_OV_TP_001 DLOT
WHERE
(
(
(
( DLOT.DATA_INSERT >= @DT_LAST_SINC
OR DLOT.DATA_UPDATE >= @DT_LAST_SINC
)
AND DLOT.DATA_DELETE IS NULL
)
OR ( DLOT.DATA_DELETE >= @DT_LAST_SINC
AND DLOT.DATA_INSERT < @DT_LAST_SINC
AND NOT EXISTS(SELECT 1
FROM DESCONTO_LOTE_OV_TP_001 T
WHERE DLOT.CD_LOTE = T.CD_LOTE
AND DLOT.CD_ORG_VENDA = T.CD_ORG_VENDA
AND DLOT.CD_TAB_PRECO = T.CD_TAB_PRECO
AND T.DATA_DELETE IS NULL
)
)
OR (
@DT_LAST_SINC IS NULL
AND DLOT.DATA_DELETE IS NULL
)
)
)
)
/* Adicionando a função na tabela */
INSERT INTO TAMOJUNTO_TABELA_FUNCAO (NM_TABLE, NM_FN, FL_ATIVA) VALUES ('DESCONTO_LOTE_OV_TP', 'fn_REGISTRO_SYNC_DESCONTO_LOTE_OV_TP', 1)
- Consulta para retornar os 20 processos que estão consumindo mais recursos de cpu no momento
SELECT TOP 20 GETDATE() AS 'Collection Date', qs.execution_count AS 'Execution Count', SUBSTRING(qt.text,qs.statement_start_offset/2 +1, (CASE WHEN qs.statement_end_offset = -1 THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2 ELSE qs.statement_end_offset END -qs.statement_start_offset)/2 ) AS 'Query Text', DB_NAME(qt.dbid) AS 'DB Name', qs.total_worker_time AS 'Total CPU Time', qs.total_worker_time/qs.execution_count AS 'Avg CPU Time (ms)', qs.total_physical_reads AS 'Total Physical Reads', qs.total_physical_reads/qs.execution_count AS 'Avg Physical Reads', qs.total_logical_reads AS 'Total Logical Reads', qs.total_logical_reads/qs.execution_count AS 'Avg Logical Reads', qs.total_logical_writes AS 'Total Logical Writes', qs.total_logical_writes/qs.execution_count AS 'Avg Logical Writes', qs.total_elapsed_time AS 'Total Duration', qs.total_elapsed_time/qs.execution_count AS 'Avg Duration (ms)', qp.query_plan AS 'Plan' FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) AS qp WHERE qs.execution_count > 50 OR qs.total_worker_time/qs.execution_count > 100 OR qs.total_physical_reads/qs.execution_count > 1000 OR qs.total_logical_reads/qs.execution_count > 1000 OR qs.total_logical_writes/qs.execution_count > 1000 OR qs.total_elapsed_time/qs.execution_count > 1000 ORDER BY qs.execution_count DESC, qs.total_elapsed_time/qs.execution_count DESC, qs.total_worker_time/qs.execution_count DESC, qs.total_physical_reads/qs.execution_count DESC, qs.total_logical_reads/qs.execution_count DESC, qs.total_logical_writes/qs.execution_count DESC GO
- Consulta para ver se uma trigger está habilitada
select ObjectProperty(Object_id(Name),'ExecIsTriggerDisabled') STATUS from sys.sysobjects where name = 'LOG_ALTERACAO_DELETE_PRODUTO_ESTOQUE'
- Checar se um campo existe em uma tabela
SELECT T.name AS Tabela, C.name AS Coluna FROM sys.sysobjects AS T (NOLOCK) INNER JOIN sys.all_columns AS C (NOLOCK) ON T.id = C.object_id AND T.XTYPE = 'U' WHERE C.NAME LIKE '%CAMPO%' ORDER BY T.name ASC
- Alterar os paths de dados de importação da modelo para o nome da empresa cadastrada
USE bd_ssm_jptripas DECLARE @empresa varchar(50); SET @empresa = 'jptripas'; UPDATE CONFIGURACAO SET DS_VALOR = 'C:\Sistema\SSM\publico\'+@empresa+'\exportacao' WHERE DS_CHAVE='DS_PATH_ARQS_EXPORTACAO' UPDATE CONFIGURACAO SET DS_VALOR = 'C:\Sistema\SSM\publico\'+@empresa+'\exportacao\backup' WHERE DS_CHAVE='DS_PATH_ARQS_EXPORTACAO_BKP' UPDATE CONFIGURACAO SET DS_VALOR = 'C:\Sistema\SSM\publico\'+@empresa+'\importacao' WHERE DS_CHAVE='DS_PATH_ARQS_IMPORTACAO' UPDATE CONFIGURACAO SET DS_VALOR = 'C:\Sistema\SSM\publico\'+@empresa+'\describer' WHERE DS_CHAVE='DS_PATH_DESCRIBER' UPDATE CONFIGURACAO SET DS_VALOR = 'C:\Sistema\SSM\publico\'+@empresa+'\versao' WHERE DS_CHAVE='DS_PATH_DIRS_VERSOES' UPDATE CONFIGURACOES SET DS_PATH_ARQS_IMPORTACAO = 'C:\Sistema\SSM\publico\'+@empresa+'\importacao' WHERE CD_CONFIGURACAO=1 UPDATE CONFIGURACOES SET DS_PATH_ARQS_EXPORTACAO = 'C:\Sistema\SSM\publico\'+@empresa+'\exportacao' WHERE CD_CONFIGURACAO=1 UPDATE CONFIGURACOES SET DS_PATH_ARQS_EXPORTACAO_BKP= 'C:\Sistema\SSM\publico\'+@empresa+'\importacao' WHERE CD_CONFIGURACAO=1 UPDATE CONFIGURACOES SET DS_PATH_DESCRIBER = 'C:\Sistema\SSM\publico\'+@empresa+'\describer' WHERE CD_CONFIGURACAO=1 UPDATE CONFIGURACOES SET DS_PATH_DIRS_VERSOES = 'C:\Sistema\SSM\publico\'+@empresa+'\versao' WHERE CD_CONFIGURACAO=1
- Script para análise de que se existe a tabela no tamojunto para inserir
select ' USE ' + name + '; IF(((SELECT COUNT(*) FROM tamojunto_tabela_funcao WHERE NM_TABLE = ''CLIENTE'') = 0) AND (EXISTS (SELECT TOP 1 1 FROM sys.objects WHERE NAME = ''CLIENTE_001''))) BEGIN INSERT INTO tamojunto_tabela_funcao VALUES (''CLIENTE'', ''fn_REGISTRO_SYNC_CLIENTE'', 1) END' from sys.databases
where
name like 'bd_ssm_%'
and state_desc = 'online'
and name not like '%prontaentrega%'
and name not like '%adm%'
and name not like '%protheus%'
and name not like '%login%'
order by name asc;
- Script para contar quantas licenças uma empresa tem.
DECLARE @VisaoLicencasUsuariosPorEmpresa TABLE ( NM_EMPRESA VARCHAR(50), NR_LICENCAS INT, NR_LICENCAS_PORTAL INT, NR_USUARIOS_SOMENTE_PORTAL INT, NR_USUARIOS_SOMENTE_MOBILE INT, NR_USUARIOS_PORTAL_MOBILE INT, NR_USUARIOS_PORTAL_MOBILE_UNICO INT, NR_USUARIOS_TOTAL INT) DECLARE @NrLicencas INT, @NrLicencasPortal INT, @NmEmpresa VARCHAR(50), @NrUsuariosSomentePortal INT, @NrUsuariosSomenteMobile INT, @NrUsuariosPortalMobile INT, @NrUsuariosPortalMobileUnico INT; SELECT @NmEmpresa = 'makita', @NrLicencas = (SELECT TOP 1 ISNULL(ES.NR_LICENCAS, 0) FROM bd_ssm_adm..EMPRESA_BD EB INNER JOIN bd_ssm_adm..EMPRESA_SISTEMA ES ON EB.CD_EMPRESA = ES.CD_EMPRESA WHERE EB.DS_DATABASE = 'bd_ssm_makita'), @NrLicencasPortal = (SELECT TOP 1 CAST(ISNULL(ES.NR_LICENCAS_PORTAL, 0) AS VARCHAR(10)) FROM bd_ssm_adm..EMPRESA_BD EB INNER JOIN bd_ssm_adm..EMPRESA_SISTEMA ES ON EB.CD_EMPRESA = ES.CD_EMPRESA WHERE EB.DS_DATABASE = 'bd_ssm_makita'), @NrUsuariosSomenteMobile = (SELECT ISNULL(COUNT(*), 0) FROM bd_ssm_makita..DADOS_VENDEDOR WHERE ID_PALM IS NOT NULL AND CD_USUARIO_SEGURANCA IS NULL), @NrUsuariosSomentePortal = (SELECT ISNULL(COUNT(*), 0) FROM bd_ssm_makita..TUSUARIO WHERE (ID_USER_SOFTSITE <> 'S' OR ID_USER_SOFTSITE IS NULL) AND CD_USUARIO NOT IN (SELECT DISTINCT CD_USUARIO_SEGURANCA FROM bd_ssm_makita..DADOS_VENDEDOR WHERE CD_USUARIO_SEGURANCA IS NOT NULL)), @NrUsuariosPortalMobile = (SELECT ISNULL(COUNT(*), 0) FROM bd_ssm_makita..TUSUARIO T INNER JOIN bd_ssm_makita..DADOS_VENDEDOR DV ON T.CD_USUARIO = DV.CD_USUARIO_SEGURANCA WHERE (ID_USER_SOFTSITE <> 'S' OR ID_USER_SOFTSITE IS NULL) AND ID_PALM IS NOT NULL), @NrUsuariosPortalMobileUnico = (SELECT ISNULL(COUNT(DISTINCT CD_USUARIO_SEGURANCA), 0) FROM bd_ssm_makita..DADOS_VENDEDOR WHERE CD_USUARIO_SEGURANCA IS NOT NULL AND ID_PALM IS NOT NULL); INSERT INTO @VisaoLicencasUsuariosPorEmpresa VALUES (@NmEmpresa, @NrLicencas, @NrLicencasPortal, @NrUsuariosSomentePortal, @NrUsuariosSomenteMobile, @NrUsuariosPortalMobile, @NrUsuariosPortalMobileUnico, (@NrUsuariosPortalMobile + @NrUsuariosSomenteMobile + @NrUsuariosSomentePortal)); SELECT * FROM @VisaoLicencasUsuariosPorEmpresa;
- Código que deve ser executado quando se restaurar uma base de produção em homologação.
UPDATE CONFIGURACAO SET DS_VALOR = 'http://homologacao.geosalesmobile.com/super/supervisor/gerencial/getRelatorioGerencial/' WHERE DS_CHAVE = 'DS_URL_REL_GERENCIAL' UPDATE CONFIGURACAO SET DS_VALOR = 'http://homologacao.geosalesmobile.com/super/services/WebService' WHERE DS_CHAVE = 'DS_URL_SERVICE' UPDATE CONFIGURACAO SET DS_VALOR = 'http://sync.geosalesmobile.com:8184/ssmservices' WHERE DS_CHAVE = 'GPS_BASE_URL' UPDATE CONFIGURACAO SET DS_VALOR = 'http://sync.geosalesmobile.com:8184/ssmservices' WHERE DS_CHAVE = 'URL_WEBSERVICE'
- Shrink
DBCC SHRINKDATABASE('bd_ssm_campneus', 0)
- Controle de licenças
SELECT program_name, HOSTNAME, * FROM sys.sysprocesses where program_name = 'passwordsenderws'
INSERT INTO empresa_bd_properties SELECT CD_EMPRESA, 'passwordsenderws', NULL, 2 FROM EMPRESA
- Verificar processo de importação
select db_name(dbid), * from sys.sysprocesses where program_name like '%Import%' and db_name(dbid) = 'bd_ssm_boreda'
- Aplicar banner em todas as bases de todos os ambientes.
select 'use ' + name + '; INSERT INTO BANNER VALUES ((SELECT ISNULL(MAX(CD_BANNER), 0) + 1 FROM BANNER), ''WEBINAR 2'', GETDATE(), ''2018-08-13 00:01:00'', 2, ''http://sscatalogo.s3.amazonaws.com/marketing/banner_portal.jpg'', ''https://goo.gl/forms/59Wwj0xgABWKY4vz2'', 1, 1)' from sys.databases where name like 'bd_ssm_%' and state_desc = 'online' and name not like '%prontaentrega%' and name not like '%adm%' and name not like '%login%' order by name asc;
- Analisar base que está dando erro no claudus
select 'SELECT ''' + name + ''' ,* from '+name+'..LOG_SERVER_CLOUD WHERE ID_STATUS_DEL = ''F'' UNION ALL' from sys.databases where name like 'bd_ssm_%' and state_desc = 'online' and name not like '%prontaentrega%' and name not like '%adm%' and name not like '%login%' order by name asc;
SELECT A.NAME, A.TYPE, B.TEXT
FROM SYSOBJECTS A (nolock)
JOIN SYSCOMMENTS B (nolock)
ON A.ID = B.ID
WHERE B.TEXT LIKE '%ITEM_PEDIDO%' --- Informação a ser procurada no corpo da procedure, funcao ou view
AND B.TEXT LIKE '%LOG_ALTERACAO_USUARIO%'
AND B.TEXT LIKE '%''D''%'
AND A.TYPE = 'TR' --- Tipo de objeto a ser localizado no caso procedure
ORDER BY A.NAME
DECLARE @Search varchar(255)
SET @Search='EXCLUINDO REGISTROS NÃO SINCRONIZADOS'
SELECT DISTINCT
o.name AS Object_Name,o.type_desc
FROM sys.sql_modules m
INNER JOIN sys.objects o ON m.object_id=o.object_id
WHERE m.definition Like '%'+@Search+'%'
ORDER BY 2,1
- Verificar falhas no claudus em todas as bases
select 'SELECT ''' + name + ''' ,* from '+name+'..LOG_SERVER_CLOUD WHERE ID_STATUS_DEL = ''F'' OR ID_STATUS_INS = ''F'' UNION ALL' from sys.databases where name like 'bd_ssm_%' and state_desc = 'online' and name not like '%prontaentrega%' and name not like '%adm%' and name not like '%login%' order by name asc;
- Analisar vínculos de frete
select * from CLIENTE where nm_cliente like '%POLO DISTR%' SELECT * FROM APLICACAO_FRETE; SELECT CD_CLASSE_FRETE, * FROM PRODUTO WHERE CD_PRODUTO = 12951 SELECT * FROM FAIXA_PRECO_FRETE WHERE CD_CLASSE_FRETE = 0 and CD_FRETE in (13527306, 23527306, 33527306) select * from PRACA where CD_PRACA = 3527306 select * from CLIENTE_PRACA where CD_CLIENTE = 100669301 --3527306 select* from FRETE where CD_PRACA = 3527306
UPDATE TAMOJUNTO_TABELA_FUNCAO SET FL_ATIVA = 1
WHERE FL_ATIVA = 0 AND NM_TABLE NOT IN ('DESCO_GRUP_CLIEN_FAMIL', 'TIPO_PRODUTO_MOVIMENTO')
- Aprovar pedidos manualmente.
SELECT 'EXEC autorizar_item_pedido_super ' + CAST(IP.CD_PEDIDO_PALM AS VARCHAR(20)) + ', ' + CAST(IP.NR_ITEM_PEDIDO AS VARCHAR(20)) + ', ' + CAST(IP.CD_PRODUTO AS VARCHAR(15)) + ', NULL, ''S'', 14 ' FROM ITEM_PEDIDO IP WHERE CD_PEDIDO_PALM IN (190302065635151583) SELECT 'EXEC autorizar_pedido_super ' + CAST(P.CD_PEDIDO_PALM AS VARCHAR(20)) + ', 14, 0 ' FROM PEDIDO P WHERE CD_PEDIDO_PALM IN (190302065635151583)
- Contagem de licenças
DECLARE @VisaoLicencasUsuariosPorEmpresa TABLE (
NM_EMPRESA VARCHAR(50),
NR_LICENCAS INT,
NR_LICENCAS_PORTAL INT,
NR_USUARIOS_SOMENTE_PORTAL INT,
NR_USUARIOS_SOMENTE_PORTAL_BLOQUEADOS INT,
NR_USUARIOS_SOMENTE_MOBILE INT,
NR_USUARIOS_PORTAL_MOBILE_COM_ID_PALM INT,
NR_USUARIOS_PORTAL_MOBILE_COM_ID_PALM_BLOQUEADO INT,
NR_USUARIOS_PORTAL_MOBILE_SEM_ID_PALM INT,
NR_USUARIOS_PORTAL_MOBILE_SEM_ID_PALM_BLOQUEADO INT,
NR_USUARIOS_PORTAL_MOBILE_UNICO INT,
NR_USUARIOS_TOTAL INT,
NR_USUARIOS_DESATIVADOS INT,
NR_USUARIOS_BLOQUEADOS_TOTAL INT)
DECLARE @NrLicencas INT, @NrLicencasPortal INT, @NmEmpresa VARCHAR(50),
@NrUsuariosSomentePortal INT, @NrUsuariosSomentePortalBloqueado INT, @NrUsuariosSomenteMobile INT,
@NrUsuariosPortalMobileComIdPalm INT, @NrUsuariosPortalMobileComIdPalmBloqueado INT,
@NrUsuariosPortalMobileSemIdPalm INT, @NrUsuariosPortalMobileSemIdPalmBloqueado INT, @NrUsuariosPortalMobileUnico INT,
@NrUsuariosPortalDesativados INT, @NrUsuariosPortalBloqueados INT;
SELECT @NmEmpresa = 'camil',
@NrLicencas = (SELECT TOP 1 ISNULL(ES.NR_LICENCAS, 0) FROM bd_ssm_adm..EMPRESA_BD EB INNER JOIN bd_ssm_adm..EMPRESA_SISTEMA ES ON EB.CD_EMPRESA = ES.CD_EMPRESA WHERE EB.DS_DATABASE = 'bd_ssm_camil'),
@NrLicencasPortal = (SELECT TOP 1 CAST(ISNULL(ES.NR_LICENCAS_PORTAL, 0) AS VARCHAR(10)) FROM bd_ssm_adm..EMPRESA_BD EB INNER JOIN bd_ssm_adm..EMPRESA_SISTEMA ES ON EB.CD_EMPRESA = ES.CD_EMPRESA WHERE EB.DS_DATABASE = 'bd_ssm_camil'),
@NrUsuariosSomenteMobile = (SELECT ISNULL(COUNT(*), 0) FROM bd_ssm_camil..DADOS_VENDEDOR WHERE ID_PALM IS NOT NULL AND CD_USUARIO_SEGURANCA IS NULL),
@NrUsuariosSomentePortal = (SELECT ISNULL(COUNT(*), 0) FROM bd_ssm_camil..TUSUARIO WHERE CD_SITUACAO <> 2 AND CD_SITUACAO <> 9 AND (ID_USER_SOFTSITE <> 'S' OR ID_USER_SOFTSITE IS NULL) AND CD_USUARIO NOT IN (SELECT DISTINCT CD_USUARIO_SEGURANCA FROM bd_ssm_camil..DADOS_VENDEDOR WHERE CD_USUARIO_SEGURANCA IS NOT NULL)),
@NrUsuariosSomentePortalBloqueado = (SELECT ISNULL(COUNT(*), 0) FROM bd_ssm_camil..TUSUARIO WHERE CD_SITUACAO <> 2 AND CD_SITUACAO = 9 AND (ID_USER_SOFTSITE <> 'S' OR ID_USER_SOFTSITE IS NULL) AND CD_USUARIO NOT IN (SELECT DISTINCT CD_USUARIO_SEGURANCA FROM bd_ssm_camil..DADOS_VENDEDOR WHERE CD_USUARIO_SEGURANCA IS NOT NULL)),
@NrUsuariosPortalMobileComIdPalm = (SELECT ISNULL(COUNT(*), 0) FROM bd_ssm_camil..TUSUARIO T INNER JOIN bd_ssm_camil..DADOS_VENDEDOR DV ON T.CD_USUARIO = DV.CD_USUARIO_SEGURANCA WHERE (ID_USER_SOFTSITE <> 'S' OR ID_USER_SOFTSITE IS NULL) AND ID_PALM IS NOT NULL AND T.CD_SITUACAO <> 2 AND T.CD_SITUACAO <> 9),
@NrUsuariosPortalMobileComIdPalmBloqueado = (SELECT ISNULL(COUNT(*), 0) FROM bd_ssm_camil..TUSUARIO T INNER JOIN bd_ssm_camil..DADOS_VENDEDOR DV ON T.CD_USUARIO = DV.CD_USUARIO_SEGURANCA WHERE (ID_USER_SOFTSITE <> 'S' OR ID_USER_SOFTSITE IS NULL) AND ID_PALM IS NOT NULL AND T.CD_SITUACAO <> 2 AND T.CD_SITUACAO = 9),
@NrUsuariosPortalMobileSemIdPalm = (SELECT ISNULL(COUNT(*), 0) FROM bd_ssm_camil..TUSUARIO T INNER JOIN bd_ssm_camil..DADOS_VENDEDOR DV ON T.CD_USUARIO = DV.CD_USUARIO_SEGURANCA WHERE (ID_USER_SOFTSITE <> 'S' OR ID_USER_SOFTSITE IS NULL) AND ID_PALM IS NULL AND T.CD_SITUACAO <> 2 AND T.CD_SITUACAO <> 9 ),
@NrUsuariosPortalMobileSemIdPalmBloqueado = (SELECT ISNULL(COUNT(*), 0) FROM bd_ssm_camil..TUSUARIO T INNER JOIN bd_ssm_camil..DADOS_VENDEDOR DV ON T.CD_USUARIO = DV.CD_USUARIO_SEGURANCA WHERE (ID_USER_SOFTSITE <> 'S' OR ID_USER_SOFTSITE IS NULL) AND ID_PALM IS NULL AND T.CD_SITUACAO <> 2 AND T.CD_SITUACAO = 9),
@NrUsuariosPortalMobileUnico = (SELECT ISNULL(COUNT(DISTINCT DV.CD_USUARIO_SEGURANCA), 0) FROM bd_ssm_camil..DADOS_VENDEDOR DV INNER JOIN TUSUARIO T ON T.CD_USUARIO = DV.CD_USUARIO_SEGURANCA WHERE DV.ID_PALM IS NOT NULL AND T.CD_SITUACAO <> 2),
@NrUsuariosPortalDesativados = (SELECT ISNULL(COUNT(*), 0) FROM bd_ssm_camil..TUSUARIO T WHERE T.CD_SITUACAO = 2),
@NrUsuariosPortalBloqueados = (SELECT ISNULL(COUNT(*), 0) FROM bd_ssm_camil..TUSUARIO T WHERE T.CD_SITUACAO = 9);
INSERT INTO @VisaoLicencasUsuariosPorEmpresa VALUES (@NmEmpresa, @NrLicencas, @NrLicencasPortal, @NrUsuariosSomentePortal, @NrUsuariosSomentePortalBloqueado, @NrUsuariosSomenteMobile, @NrUsuariosPortalMobileComIdPalm, @NrUsuariosPortalMobileComIdPalmBloqueado, @NrUsuariosPortalMobileSemIdPalm, @NrUsuariosPortalMobileSemIdPalmBloqueado, @NrUsuariosPortalMobileUnico, (@NrUsuariosPortalMobileComIdPalm + @NrUsuariosPortalMobileComIdPalmBloqueado + @NrUsuariosPortalMobileSemIdPalm + @NrUsuariosPortalMobileSemIdPalmBloqueado + @NrUsuariosSomenteMobile + @NrUsuariosSomentePortal + @NrUsuariosSomentePortalBloqueado), @NrUsuariosPortalDesativados, @NrUsuariosPortalBloqueados);
SELECT * FROM @VisaoLicencasUsuariosPorEmpresa
SELECT 'INSERT INTO USUARIO_EMPRESA VALUES (' +
CAST( (1331 + ROW_NUMBER() OVER(ORDER BY CD_USUARIO ASC) ) as VARCHAR(20)) + ',' +
CAST(CD_TUSUARIO AS VARCHAR(10)) + ',''' +
'estrellagaliciahomolog'', ' +
CAST(VALIDO AS VARCHAR(10)) + ',''' +
ISNULL(CAST(DT_VALIDADE AS VARCHAR(100)), 'NULL') + ''',''' +
ISNULL(CAST(DT_CRIACAO AS VARCHAR(100)), 'NULL') + ''',' +
CAST(PAPEL AS VARCHAR(10)) + ')'
FROM USUARIO_EMPRESA WHERE NM_EMPRESA = 'estrellagalicia'
SELECT 'INSERT INTO USUARIO VALUES ' +
'(''' + ISNULL(U.NOME, 'NULL') + ''',''' +
ISNULL(U.LOGIN, 'NULL') + '' + ''',''' +
ISNULL(U.EMAIL, 'NULL') + ''',''' +
ISNULL(U.SENHA, 'NULL') + ''',''' +
ISNULL(U.SALT, 'NULL') + ''',''' +
ISNULL(U.TELEFONE, 'NULL') + ''',''' +
ISNULL(CAST(U.NUMERO_VIOLACOES AS VARCHAR(100)), 'NULL') + ''',''' +
ISNULL(CAST(U.VALIDO AS VARCHAR(100)), 'NULL') + ''',''' +
ISNULL(CAST(U.DT_VALIDADE AS VARCHAR(100)), 'NULL') + ''',''' +
ISNULL(CAST(U.DT_CRIACAO AS VARCHAR(100)), 'NULL') + ''',''' +
ISNULL(U.URL_FOTO, 'NULL') + ''',''' +
ISNULL(CAST(U.DELTA_ITERACOES AS VARCHAR(100)), 'NULL') + ''')'
FROM USUARIO U
INNER JOIN USUARIO_EMPRESA UE ON U.CD_USUARIO = UE.CD_USUARIO
WHERE NM_EMPRESA = 'estrellagalicia'
- Análise de processo de importação
select * from dw_importacao order by 3 desc select db_name(dbid), * from sys.sysprocesses where db_name(dbid) = 'bd_ssm_coopatos' and program_name like '%Import%' EXEC sp_who2 23230 DBCC INPUTBUFFER(23230)