Criando CLR em C# para apagar um arquivo via SQL Server

Como podemos criar CLR para apagar um arquivo via SQL Server, neste post será demonstrado passo a passo de como fazer.

Primeiramente abra seu Visual Studio, feito isso, será necessário criar um novo projeto, para isso, siga os procedimentos descritos abaixo:

  1. Selecione a opção File -> New ->Project;
  2. Selecione a opção SQL Server -> SQL Server Database Project;
  3. Informe o nome do projeto que nesse caso é ‘DeleteFile’;
  4. Continue reading → Criando CLR em C# para apagar um arquivo via SQL Server

Como posso saber quantas tabelas tenho em meu banco de dados e quantas linhas cada uma delas possui?

Como podemos saber quantas tabelas temos em um determinado banco de dados e quantas linhas cada uma das tabelas listada possuem, pois bem, nesse post será demonstrado como fazer.

No exemplo demonstrado será utilizado o banco de dados AdventureWorks2012.


SELECT SCHEMA_NAME(T.SCHEMA_ID) + '.' + T.NAME AS NOMETABELA,
 P.ROWS AS QTDELINHAS
 FROM SYS.TABLES T
 INNER JOIN SYS.PARTITIONS P ON (P.OBJECT_ID = T.OBJECT_ID AND INDEX_ID < 2)
 ORDER BY QTDELINHAS DESC

Entendendo o código acima.

SCHEMA_NAME: O ‘SCHEMA_NAME‘ retorna o esquema que o objeto pertence, percebam que passamos por parâmetro para a função ‘SCHEMA_NAME‘ o ‘ID‘ do esquema.

SYS.TABLES: No objeto ‘TABLES‘ possuem todas as tabelas de seu banco de dados.

SYS.PARTITIONS: No objeto ‘PARTITIONS‘ possui a quantidade de linhas que tabela contém.

O resultado do select será todas as tabelas de seu banco de dados com a quantidade de linhas que cada uma delas possui.

QTDE_TABELAS_LINHAS

 

 

 

 

 

 

 

 

 

 

 

 

Função interna CHOOSE

A função interna CHOOSE retorna um valor de acordo com índice que foi passado por parâmetro, vamos ao exemplo que ficará mais claro seu funcionamento.


SELECT CHOOSE(3,'T','-','S','Q', 'L')

Ao executar o select acima o retorno será ‘S’, pois, informamos que queríamos o índice 3.

CHOOSE

 

 

Diferença entre CAST(CAMPO AS VARCHAR) X CAST(CAMPO VARCHAR(100))

Diferença entre CAST(CAMPO AS VARCHAR) X CAST(CAMPO VARCHAR(100))

Quando é preciso converter um campo fazendo uso do ‘CAST‘ e a conversão é para o tipo de dados ‘VARCHAR‘ existem duas formas fazer.

1 .

 SELECT CAST('WWW.T-SQL.COM.BR DICAS SOBRE SQL SERVER' AS VARCHAR) 

2 .

 SELECT CAST('WWW.T-SQL.COM.BR DICAS SOBRE SQL SERVER' AS VARCHAR(100)) 

Mais qual a diferença entre a 1 e a 2?

Quando utilizar o CAST(CAMPO AS VARCHAR) ou seja sem especificar o tamanho desejado, por default o campo será convertido para VARCHAR(30), exemplo:

CAST1

 

 

 

 

 

Já ao especificar o tamanho desejado será respeitado o tamanho especificado, exemplo:

CAST2

 

 

 

 

Talvez muitos não saibam que ao não especificar o tamanho o mesmo será convertido para VARCHAR(30), portando, como dica para evitarmos surpresas desagradáveis sempre especifique o tamanho que desejado.

Função que retorna data no formato ‘DDMMYYYY’

A função é bem simples, é passado uma data por parâmetro e a função retorna essa data no formato ‘DDMMYYYY‘.

Abaixo é a função que iremos utilizar.


CREATE FUNCTION FN_DATA (@DATA DATE)

RETURNS VARCHAR(8)
AS
BEGIN
DECLARE @DATA1 VARCHAR(8);

SELECT @DATA1 = REPLACE(CONVERT(VARCHAR(10), @DATA,103), '/', '');

RETURN @DATA1;
END;

Após ter criado a função vamos realizar um teste, fazendo um select e passando por parâmetro uma data.


SELECT DBO.FN_DATA(GETDATE()) AS DATAFUNCAO

O retorno do select executado acima é:

RETONOFUNCAO