.Net developer
Mostrando postagens com marcador sql. Mostrar todas as postagens
Mostrando postagens com marcador sql. Mostrar todas as postagens

Removendo tabelas temporárias

Delete em cascata

ALTER TABLE [dbo].[TB_FW_TransacaoGrupo] WITH CHECK ADD CONSTRAINT [FK_TB_FW_TransacaoGrupo_TB_FW_Transacao] FOREIGN KEY([ID_TRANSACAO])
REFERENCES [dbo].[TB_FW_Transacao] ([ID_TRANSACAO])
ON DELETE CASCADE
GO

ALTER TABLE [dbo].[TB_FW_TransacaoGrupo] CHECK CONSTRAINT [FK_TB_FW_TransacaoGrupo_TB_FW_Transacao]
GO

datetime

And A.StartTime >= '" & Now.ToString("yyyy-MM-dd") & " 00:00:00' and A.StartTime <= '" & Now.ToString("yyyy-MM-dd") & " 23:59:59' "

convert(char(10), tb_ocorrencia.dt_ocorrencia, 121) between

Número da linha, numa consulta SQL Select

SELECT ROW_NUMBER() OVER (ORDER BY id_produto) AS 'RowNumber', * from tb_fwe_produto
order by id_produto

Criando campos na tabela



DECLARE @OBJECT_ID INT

SELECT @OBJECT_ID=OBJECT_ID FROM SYS.OBJECTS WHERE TYPE_DESC = 'USER_TABLE' AND NAME = 'TB_FWE_CONFIGURACAO_PAGAMENTO'

IF NOT EXISTS(SELECT * FROM SYS.COLUMNS WHERE OBJECT_ID=@OBJECT_ID AND NAME='PAGSEGURO_DS_EMAIL' )
BEGIN
ALTER TABLE TB_FWE_CONFIGURACAO_PAGAMENTO
ADD PAGSEGURO_DS_EMAIL VARCHAR(150) NULL;
END



SQL Statement Generator for Table-Mirror

Voilà, script t-sql para gerar os comandos de INSERT e/ou UPDATE, em SQL, para cada uma das linhas já gravadas em determinada tabela.



Transforma isso....

.. nisso:


Parametrização

Só com os comandos UPDATE..

SET @SE_NAO_EXISTE = 0
SET @BATCH_UPDATE = 1
SET @BATCH_INSERT = 0



Verificando se a chave já existe, para gerar o script de atualizar (update) ou inserir a linha (insert):

SET @SE_NAO_EXISTE = 1
SET @BATCH_UPDATE = 1
SET @BATCH_INSERT = 1





download do script

Formato de data - t-sql

select substring(convert(char(20), getdate(), 120),1,10)

Split no Transact-SQL


declare @s varchar(100)
set @s='aaaa,bbbb,cccc'
declare @xml xml
set @xml = cast('<tag>' + replace(@s, ',','</tag><tag>') + '</tag>' as xml)
select T.i.value('.', 'varchar(255)') from @xml.nodes('tag') T(i)

Ativando ou não a IDENTITY da tabela

SET IDENTITY_INSERT MyTable ON

Procedure inteligente

Como criar uma procedure inteligente, com filtros por todos os campos da tabela, opção de escolher quais colunas devem ser trazidas e como devem ser ordenados os registros.

Flexibidade total, pois funciona facilmente para necessidades distintas como:
  • pesquisar um cliente pelo seu ID (chave) e trazer todos seus dados
  • relatório de clientes cadastrados, com todos os dados da tabela, ordenando por ID.
  • listagem dos clientes, trazendo apenas ID e Nome para abastecer um combobox, por exemplo.





CREATE PROCEDURE [dbo].[STP_CLIENTE_LISTAR]
@ordenacao varchar(100) = null,
@colunas varchar(1000) = null,
@id_cliente int = null ,
@nm_fantasia varchar(30) = null ,
@nr_cnpj_cpf varchar(14) = null
AS
BEGIN

DECLARE @comando varchar(8000)

if @colunas is null
begin
SET @colunas = ' id_cliente ,
nm_cliente ,
nm_fantasia ,
nr_cnpj_cpf '
end

SET @comando =
'
SELECT ' + @colunas + '
FROM TB_CLIENTE
WHERE id_cliente = id_cliente '

--FILTROS
IF @nm_fantasia is not null
BEGIN
IF @nm_fantasia = ''
BEGIN
SET @comando = @comando + ' AND nm_fantasia is null '
END
ELSE
BEGIN
SET @comando = @comando + ' AND nm_fantasia = ''' + @nm_fantasia + ''''
END
END

IF @id_cliente is not null
BEGIN
IF @id_cliente = ''
BEGIN
SET @comando = @comando + ' AND id_cliente is null '
END
ELSE
BEGIN
SET @comando = @comando + ' AND id_cliente = ' + CAST(@id_cliente AS VARCHAR(10))
END
END

IF @nr_cnpj_cpf is not null
BEGIN
IF @nr_cnpj_cpf = ''
BEGIN
SET @comando = @comando + ' AND nr_cnpj_cpf is null '
END
ELSE
BEGIN
SET @comando = @comando + ' AND nr_cnpj_cpf = ''' + @nr_cnpj_cpf + ''''
END
END

---ORDENACAO
IF @ordenacao IS NOT NULL
BEGIN
SET @comando = @comando + ' ORDER BY ' + @ordenacao
END
ELSE
BEGIN
SET @comando = @comando + ' ORDER BY NM_CLIENTE'
END
EXECUTE(@comando)

END






Stored Procedures com SubSonic

Como chamar uma Stored Procedure e obter seus dados num DataTable


StoredProcedure sp = DAL.SPs.Cliente_Listar(3);
DataTable dt = sp.GetDataSet().Tables[0];

string nome;
foreach (DataRow row in dt.Rows)
{
nome = row[1].ToString();
}

Para executar uma procedure só de atualização ou insert, bastava dar um sp.Execute() ao invés do GetDataSet().

No código, ao digitar o DAL.SPs. (logo depois do ponto) são listadas pelo Visual Studio todas as procedures da base!.

Para rodar este código, necessário o using SubSonic.

Como ter Subsonic? Se vira: http://www.subsonicproject.com/ ou dá uma googleada!

Como ordenar registros de um Dataset

Como dar um order by num dataset

DataSet ds = objeto.MetodoQueRetornaUmDataset()
DataView dv = ds.Tables[0].DefaultView;
dv.Sort = "NOME_CAMPO_PARA_ORDENAR ASC";
ds.Tables.Clear();
ds.Tables.Add(dv.ToTable());

Ordenando registros de dataset ou datatable

DataView dv = tabela.DefaultView;
dv.Sort = "NOME_CAMPO ASC";
tabela = dv.ToTable();
ds.Tables.Add(tabela);
return ds;

Meu Model Entity Relationship

FWCommerce

Criando relacionamentos

ALTER TABLE [dbo].[TB_TABELAFILHA] WITH CHECK ADD CONSTRAINT
[FK_TB_TABELAFILHA_TB_TABELAPAI] FOREIGN KEY([ID_FK_PAI])
REFERENCES [dbo].[TB_TABELAPAI] ([ID_PK_PAI])
GO