<\/HEAD>
あなたの組織にキーボードで叫んでいる人はいますか?すべて大文字ですか?すべて小文字の反逆者はどうですか?あるいはさらに悪い、最初の単語だけProper Caseで他の単語はすべて小文字の忍者たち。<\/P>
<\/P>
私には個人的な嫌いなこと(OCD)があります。GISのフィーチャ名はProper Caseであるべきです。Happy Valley Road。Happy valley roadでもHappy valley Roadでもなく、もちろんHAPPY VALLEY ROADでもありません。<\/P>
<\/P>
編集者がどのようにテキストを大文字・小文字にしても、そのフィーチャ名をProper Caseで命名することを強制したいと思います。これはSQLのシンプルなFunctionとTriggerで実現できます。<\/P>
<\/P>
まず以下の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>次にこの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>ここで注意すべきは、これは挿入後にのみ発動し、更新時には発動しないことです。叫ぶ人たちがProper Case以外を望む正当な理由があるかもしれません。例えば「ND Happy Valley Road」(NDは「North District」の略)などです。これにより彼ら(または彼らが私に叫んだ後の私)がその特定のフィーチャだけをトリガーによるProper Case変換なしで更新できます。<\/P><\/P>これは個人ブログであり、上記の方法を推奨、支持、または保証するものではありません。ESRIソフトウェアスタック外でSQLを使ってデータを変更することはサポートされておらず、十分な理解と災害復旧計画なしに本番データベースに適用すべきではありません。<\/EM><\/P><\/BODY><\/HTML>