<\/HEAD>
Haben Sie jemanden in Ihrer Organisation, der MIT DER TASTATUR SCHREIT? Alles ist in Großbuchstaben? Was ist mit den abtrünnigen Personen, die alles in Kleinbuchstaben schreiben? Oder noch schlimmer, die First-word-is-proper-case-all-other-words-are-lower-case Ninjas.<\/P>
<\/P>
Ich habe eine persönliche Marotte (OCD). Feature-Namen in GIS sollten Proper Case sein. Happy Valley Road. Nicht Happy valley road, nicht Happy valley Road und definitiv nicht HAPPY VALLEY ROAD.<\/P>
<\/P>
Ich möchte die Benennung in Proper Case für diese Features durchsetzen, unabhängig davon, wie der Text vom Editor geschrieben wird. Dies kann mit einer einfachen Function und einem Trigger in SQL erreicht werden.<\/P>
<\/P>
Zuerst erstellen Sie die folgende Function:<\/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>Dann diesen 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>Beachten Sie hier, dass dieser nur nach einem Insert ausgelöst wird, nicht bei einem Update. Es könnte legitime Gründe geben, warum die YELLERS etwas anderes als Proper Case wollen, z.B. "ND Happy Valley Road" (ND für "North District"). Dies erlaubt ihnen (oder mir, nachdem sie mich ANGEFLEHT haben), dieses eine Feature zu aktualisieren, ohne dass der Trigger meine Änderung auf Proper Case ändert.<\/P><\/P>Dies ist ein persönlicher Blog und empfiehlt, unterstützt oder befürwortet die oben beschriebenen Methoden nicht. Die Änderung von Daten mit SQL außerhalb des ESRI Software-Stacks wird natürlich nicht unterstützt und sollte ohne gründliches Verständnis und einen Notfallwiederherstellungsplan nicht auf einer Produktionsdatenbank angewendet werden.<\/EM><\/P><\/BODY><\/HTML>