Skip to content

Instantly share code, notes, and snippets.

View ebenito's full-sized avatar
🏠
Working from home

Esteban ebenito

🏠
Working from home
View GitHub Profile
@ebenito
ebenito / SepararNombreApellidos.txt
Last active May 17, 2021 07:47
TSQL - Separar nombre y apellidos 1 y 2
CREATE FUNCTION [dbo].[fnGetSegunoEspacioFinal](@NombreCompleto as varchar(255))
RETURNS int
AS
BEGIN
DECLARE @PosiSegunoEspacioFinal AS int
SET @PosiSegunoEspacioFinal = CHARINDEX(' ', @NombreCompleto, CHARINDEX(' ', @NombreCompleto) + 1) + 1
RETURN @PosiSegunoEspacioFinal --La idea es marcar de forma generico el inicio de los apellidos en una cadena con el nombre completo
@ebenito
ebenito / fnCalcProxDiaSemEnProxMes.sql
Last active October 5, 2020 09:52
Calcula el primer día deseado de la semana del próximo mes, por ejemplo el primer domingo del próximo mes
/* Calcula el primer día deseado de la semana del próximo mes, por ejemplo el primer domingo del próximo mes:
select primerDomEnProxMes from dbo.fnCalcProxDiaSemEnProxMes(getdate())
*/
CREATE FUNCTION [dbo].[fnCalcProxDiaSemEnProxMes](
@D Datetime
)
RETURNS @output TABLE(primerDomEnProxMes datetime, primerLunEnProxMes datetime, primerMarEnProxMes datetime, primerMieEnProxMes datetime, primerJueEnProxMes datetime, primerVieEnProxMes datetime, primerSabEnProxMes datetime)
@ebenito
ebenito / fnExtraerEmails.sql
Created August 19, 2020 12:06
TSQL - Extraer correo electronico de un texto
CREATE FUNCTION [dbo].[fnExtraerEmails] (@email varchar(255))
RETURNS VARCHAR(255)
AS
BEGIN
declare @Izda varchar(255);
declare @RevIzda varchar(255);
declare @Dcha varchar(255);
declare @resultado varchar(255);
@ebenito
ebenito / CapitalizeFirstLetter.sql
Created July 14, 2020 08:09
Capitalizar la primera letra de cada palabra
CREATE FUNCTION [dbo].[CapitalizeFirstLetter]
(
--string need to format
@string VARCHAR(200)--increase the variable size depending on your needs.
)
RETURNS VARCHAR(200)
AS
BEGIN
--Declare Variables
@ebenito
ebenito / C#
Created March 22, 2019 08:22
Forzar una respuesta correcta por consola
//Ver: https://stackoverflow.com/questions/37359161/how-would-i-make-a-yes-no-prompt-in-console-using-c
bool confirmed = false;
string Key;
do {
Console.Write("Please enter a login key: ");
Key = Console.ReadLine();
Console.WriteLine("You entered, " + Key + " as your login key!");
ConsoleKey response;
@ebenito
ebenito / T-SQL
Created March 6, 2019 08:01
Ver tamaño de las tablas
SELECT t.NAME AS NombreTabla,
s.Name AS Esquema,
p.rows AS NumFilas,
SUM(a.total_pages) * 8 AS EspacioTotal_KB,
(SUM(a.total_pages) * 8)/ 1024 AS EspacioTotal_MB,
((SUM(a.total_pages) * 8)/ 1024/1024) AS EspacioTotal_GB,
SUM(a.used_pages) * 8 AS EspacioUsado_KB,
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS EspacioNoUsado_KB
FROM sys.tables t
@ebenito
ebenito / T-SQL
Last active March 6, 2019 07:59
Reiniciar indentidad tabla
-- Al vaciar la tabla
delete NombreTabla
DBCC CHECKIDENT ('NombreTabla', RESEED, 0);
-- Al siguiente valor
declare @max int
SELECT @max=max([Id]) FROM NombreTabla
if @max IS NULL
SET @max = 0
DBCC CHECKIDENT ('[NombreTabla]', RESEED, @max)
@ebenito
ebenito / T-SQL
Created March 6, 2019 07:56
Trigger para capturar usuario y fecha y hora de modificación
CREATE TRIGGER [dbo].[NombreTrigger_UpdIns] ON [dbo].[NombreTabla]
FOR UPDATE, INSERT AS
UPDATE NombreTabla
SET UserName = coalesce(suser_sname(),'?'),
UserDateTime = GETDATE()
WHERE id IN (SELECT DISTINCT id FROM Inserted)
@ebenito
ebenito / VB.NET
Last active March 5, 2019 08:31
Capturar un evento para cualquier objeto de cierto tipo (aquí TextBox)
For Each c As Object In Form1.Controls
If c.GetType Is GetType(TextBox) Then
AddHandler DirectCast(c, TextBox).TextChanged, AddressOf CamposForm_TextChanged
End If
Next
Sub CamposForm_TextChanged(ByVal sender As TextBox, ByVal e As System.EventArgs)
CamposCambiados.Value = CamposCambiados.Value & IIf(CamposCambiados.Value <> "", ", " & sender.ID, sender.ID)
End Sub
@ebenito
ebenito / C#
Created March 5, 2019 08:02
Metodo de extensión IN:
public static class Ext
{
public static bool In<T>(this T t, params T[] values)
{
foreach (T value in values)
{
if (t.Equals(value))
{
return true;
}