Scripts en T-SQL
Durante mis actividades como desarrollador he construido algunos scripts que pueden resultar de utilidad a otros proyectos, ya sea directamente implementados o como parte de las consultas para verificar información y resultados. Algunos pueden resultar muy básicos pero espero sirvan de utilidad a más de uno.
Este micro-script hace uso de SUBSTRING, CHARINDEX, REPLACE y LEN para actualizar los valores de un campo de tipo VARCHAR, cambiando una abreviación por la palabra completa, además de reemplazar los pares de caracteres que sustituyen a las letras acentuadas debido a discordancia entre conjuntos de caracteres, por las letras acentuadas correctamente.
UPDATE [Tabla]
SET [Campo] = REPLACE (
REPLACE (
SUBSTRING (
[Campo], 1, CHARINDEX (@cadBuscada, [Campo]) - 1
) + @cadNueva +
SUBSTRING (
SUBSTRING ( [Campo], CHARINDEX (@cadBuscada, [Campo]), LEN ([Campo])),
CHARINDEX (' ',
SUBSTRING ([Campo], CHARINDEX (@cadBuscada, [Campo]), LEN ([Campo]))
),
LEN (SUBSTRING ([Campo], CHARINDEX (@cadBuscada, [Campo]), LEN ([Campo])))
), 'ó', 'ó'
), 'é', 'é'
)
WHERE [Campo] like @str1 or [Campo] like @str2
El siguiente script sirve para obtener la especificación de un SP o una vista, utilizando únicamente el nombre del mismo, sin necesidad de saber el esquema.
Posiblemente no devuelva lo esperado si es que existen más de un SP o una vista que tengan el mismo nombre pero diferente esquema.
DECLARE @nombreSP NVARCHAR(MAX) = N'spNombreDelSP',
@nombreCompletoSP NVARCHAR(MAX);
SELECT @nombreCompletoSP = s.name + '.' + o.name
FROM sys.objects o, sys.schemas s
WHERE o.schema_id = s.schema_id AND o.name = @nombreSP
EXEC sp_helptext @nombreCompletoSP
Este script devuelve el conjunto de tablas cuyo nombre contenga la palabra especificada.
DECLARE @nombre NVARCHAR(MAX) = N’LaTabla’, @nombreCompleto NVARCHAR(MAX); SELECT s.name + ’.’ + o.name FROM sys.objects o, sys.schemas s WHERE o.schema_id = s.schema_id AND o.name like ’ %’ + @nombre + ’ %’ AND Type = ’U’
Para encontrar todas las apariciones en tablas con un campo que contenga la cadena indicada
SELECT s.name + ’.’ + o.name Name, c.name [Column] FROM Sys.columns c join sys.objects o ON c.object_id = o.object_id join sys.schemas s ON o.schema_id = s.schema_id WHERE o.type = ’U’ and c.name like ’ %NombreParcialDeCampo%’ ORDER BY Name
Iré agregando algunos scripts que me han resultado útiles, por lo que estén atentos a esta publicación
Tus comentarios me ayudan a mejorar el contenido de mis publicaciones para que sean de mayor utilidad e interés. Agradezco tu aportación.
Comentarios
Publicar un comentario