<\/HEAD>
¿Tienes a alguien en tu organización que GRITA CON SU TECLADO? ¿Todo está en mayúsculas? ¿Qué pasa con las personas rebeldes que escriben todo en minúsculas? O peor aún, los ninjas del Primer-palabra-con-mayúscula-todas-las-otras-palabras-en-minúscula.<\/P>
<\/P>
Tengo una manía personal (TOC). Los nombres de las características en GIS deben estar en Proper Case. Happy Valley Road. No Happy valley road, no Happy valley Road, y definitivamente no HAPPY VALLEY ROAD.<\/P>
<\/P>
Me gustaría hacer cumplir la nomenclatura en Proper Case de esas características sin importar cómo el editor escriba el texto. Esto se puede lograr con una simple Función y Trigger en SQL.<\/P>
<\/P>
Primero crea la siguiente Función:<\/P>
<\/P>
create function [dbo].[ProperCase](@Text as varchar(8000))
returns varchar(8000)
as
begin
declare @Reset bit;
declare @Ret varchar(8000);
declare @i int;
declare @c char(1);
select @Reset = 1, @i=1, @Ret = '';
while (@i <= len(@Text))
select @c= substring(@Text,@i,1),
@Ret = @Ret + case when @Reset=1 then UPPER(@c) else LOWER(@c) end,
@Reset = case when @c like '[a-zA-Z]' then 0 else 1 end,
@i = @i +1
return @Ret
end
GO<\/PRE><\/P>Luego este Trigger:<\/P><\/P>CREATE TRIGGER [dbo].[NAME_UPDATE]
ON [dbo].[SOME_TABLE]
AFTER INSERT NOT FOR REPLICATION
AS BEGIN
SET NOCOUNT ON;
UPDATE SOME_TABLE
SET
NAME = dbo.Propercase(NAME)
END
GO<\/PRE><\/P>Nota que esto solo se ejecuta después de una inserción, no de una actualización. Podría haber una razón legítima por la cual los QUE GRITAN quieran algo diferente a proper case, por ejemplo "ND Happy Valley Road" (ND para "North District"). Esto les permite a ellos (o a mí después de que ME GRITEN) actualizar esa característica sin que el trigger cambie a proper case mi edición.<\/P><\/P>Este es un blog personal y no recomienda, respalda ni apoya los métodos descritos arriba. La alteración de datos usando SQL fuera del stack de software ESRI, por supuesto, no está soportada y no debe aplicarse a una base de datos de producción sin un entendimiento completo y un plan de recuperación ante desastres.<\/EM><\/P><\/BODY><\/HTML>