18 setembro 2008

[SQL SERVER] DESABILITAR RELACIONAMENTOS DE UMA TABELA

Para desabilitar todos os relacionamentos de uma tabela a escolha, é so utilizar esse script, alterando apenas o nome da tabela. Depois so não pode esquecer de habilitar os relacionamentos novamente.

DECLARE
@NOME_FOREIGN VARCHAR(100),
@PARENT INT,
@NOME_TABELA VARCHAR(100)
DECLARE NOMES_FOREIGN CURSOR FOR
SELECT NAME, PARENT_OBJ FROM DBO.SYSOBJECTS
WHERE OBJECTPROPERTY(ID,N'ISFOREIGNKEY') = 1
and name like '%NOME DA TABELA%'

OPEN NOMES_FOREIGN

FETCH NEXT FROM NOMES_FOREIGN INTO @NOME_FOREIGN, @PARENT

WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @NOME_TABELA = NAME FROM DBO.SYSOBJECTS WHERE ID = @PARENT

PRINT 'DESABILITA CHAVE ESTRANGEIRA: ' + @NOME_TABELA + ' - ' + @NOME_FOREIGN
EXEC('ALTER TABLE [' + @NOME_TABELA + '] NOCHECK CONSTRAINT [' + @NOME_FOREIGN + ']')

FETCH NEXT FROM NOMES_FOREIGN INTO @NOME_FOREIGN, @PARENT
END

CLOSE NOMES_FOREIGN
DEALLOCATE NOMES_FOREIGN

[SQL SERVER] HABILITAR RELACIONAMENTOS DE UMA TABELA

DECLARE
@NOME_FOREIGN VARCHAR(100),
@PARENT INT,
@NOME_TABELA VARCHAR(100)

DECLARE NOMES_FOREIGN CURSOR FOR
SELECT NAME, PARENT_OBJ FROM DBO.SYSOBJECTS
WHERE OBJECTPROPERTY(ID,N'ISFOREIGNKEY') = 1
-- AND NAME LIKE '%' + @SISTEMA + '%' ESCAPE '#'
and name like '%NOME DA TABELA%'

OPEN NOMES_FOREIGN

FETCH NEXT FROM NOMES_FOREIGN INTO @NOME_FOREIGN, @PARENT

WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @NOME_TABELA = NAME FROM DBO.SYSOBJECTS WHERE ID = @PARENT

PRINT 'HABILITA CHAVE ESTRANGEIRA: ' + @NOME_TABELA + ' - ' + @NOME_FOREIGN
EXEC('ALTER TABLE [' + @NOME_TABELA + '] CHECK CONSTRAINT [' + @NOME_FOREIGN + ']')

FETCH NEXT FROM NOMES_FOREIGN INTO @NOME_FOREIGN, @PARENT
END

CLOSE NOMES_FOREIGN
DEALLOCATE NOMES_FOREIGN

[MAKER - WEBRUN] Remover código fonte dos sistemas

Para quem vai instalar algum sistema feito em maker em algum cliente, e não quer seu código fonte a mercê, basta publicar seu sistema, deletar algumas tabelas FR, colocar o tomcat ou IIS e pronto.


Primeiro passo é exportar o sistema pelas configurações do webrun

Photobucket

Opção Publicar WAR
Photobucket

Ele vai gerar um arquivo .zip, que você deverá renomear para .war. O nome que você der a esse arquivo vai ser o nome para acessar o sistema. Exemplo, se renomear o arquivo para sistemas.war, para acessar o sistema, o link sera http://localhost:8080/sistemas.
Lembrando que será necessário instalar o tomcat, e esse arquivo deverá ficar na mesma pasta

Depois de publicar, é so deletar as tabelas FR.
Não esqueça o backup

OBS: ESSAS SÃO AS TABELAS QUE NÃO DEVEM SER DELETADAS
FR_SISTEMA
FR_USUARIO
FR_GRUPO
FR_USUARIO_GRUPO
FR_USUARIO_SISTEMA
FR_PERMISSAO
FR_LOG
FR_LOG_EVENT
FR_RELATORIO
FR_TAREFA
FR_TAREFA_TEMPO
FR_REGRAS
FR_SESSAO
FR_SESSAO_VI

Deletar essa tabelas é a parte chata...
Após essas alterações, não será mais possível fazer alteração no código fonte

18 agosto 2008

[SQL SERVER] Como saber se uma tabela é usada em alguma view ou procedure...

SELECT
   NAME
FROM
   SYSOBJECTS
WHERE
   ID IN (
      SELECT
         ID
      FROM
         SYSDEPENDS
      WHERE
         DEPID = OBJECT_ID('NOME DA TABELA')
      )

05 agosto 2008

[SQL SERVER] Algumas funções SQL bastante utilizadas

Funções de agrupamento:
AVG() = Retorna o valor médio de uma coluna específica
COUNT() = Retorna o número de linhas
MAX() = Retorna o valor máximo de uma coluna específica
MIN() = Retorna o valor mínimo de uma coluna específica
SUM() = Retorna a soma de uma coluna específica

Funções de manipulação de strings:
LEN (string) = Identifica o comprimento de uma expressão em caracteres
LOWER (string) = converte uma string uppercase para lowercase.
LTRIM (string) = remove os espaços em branco
REPLICATE (string, integer) = Repete N vezes um caractere especificado
REPLACE (string, string, string) Em uma expressão(1º parâmetro), essa função substitui uma referida string (2º parametro) por qualquer outra especificada(3º parâmetro)
RTRIM (string) = remove os espaços em branco à direita de uma string
SPACE (integer) = que retorna o número de espaços em branco informados no parâmetro SUBSTRING (string texto, posicao_inicial, tamanho) = retorna uma string com o comprimento definido em "tamanho" extraida da string "texto", a partir da "posicao_inicial"
UPPER (string) = retorna string em maiusculas

Funções de manipulação de data/hora:
nomes das partes de data:
Year = yy, yyyy
Month = mm, m
Day = dd, d
Week = wk, ww
Hour = hh
Minute = mi, n
Second = ss, s
Millisecond = ms
DW(dia da semana)

DATEADD (parte, numero, data) = adiciona um valor a parte de uma data
DATEDIFF (parte, data inicial, data final) = subtrai a data inicial da data final, indicando o resultado na unidade definida em "parte"
GETDATE() = retorna a data atual do sistema
DATENAME (parte, data) = retorna o nome da parte de uma data
DATEPART (parte, data) = retorna a parte de uma data

Funções de Sistema:
CAST (expressao as datatype) = converte uma expressao no datatype informado
ISNULL (expressao, valor) = se a expressao for null, troca pelo valor especificado
ISNUMERIC (expressao) = retorna 1 se a expressao for numerica e 0 se não for
NULLIF (expressao_1, expressao_2) = retorna nulo se as duas expressoes forem equivalentes. Se não forem, retorna a primeira expressao.
USER_ID (nome_do_usuario) = retorna o ID do usuario informado para o BD em uso
USER_NAME (id_do_usuario) = retorna o usuario conectado ao BD

Funções Matematicas:
ABS (numero) = retorna o valor absoluto do numero
ROUND (numero, precisao, arredonda_ou_trancar) = arredonda ou tranca o numero fornecido de acordo com a precisao informada. Se o terceiro parametro não for passado para a funçao, o numero é arredondado. Se quiser que o numero seja truncado, deve-se fornecer o valor 1
SIGN (numero) = retorna sinal positivo, negativo ou zero do numero
SQRT (float) = retorna a raiz quadrada de um numero
SQUARE (float) = retorna o quadrado de um numero

Função de conversão:
CONVERT (tipo(tamanho), expressão, estilo) = converte a expressão para o tipo de dado. O tamanho e o estilo são opcionais

[SQL SERVER] Descobrir tabelas e views dependentes

Quer descobrir quais sao as tabelas e views dependentes de uma determinada tabela?

O comando abaixo mostra todas as dependências da tabela a escolha, identificando as views com código 4 e tabelas com código 8. AS tabelas são as mesmas se for pelo enterprise e criar um novo diagrama adicionando todas as dependências da tabela

exec sp_MSdependencies N'[dbo].[NOMEDATABELA]', null, 1315327