プログラムで作成された SQL 列の名前を検証する必要があります...
2 つの検証ルールがあります。
- 名前は C# キーワードであってはなりません
- 名前は SQL キーワードであってはなりません(SQL Server 2008 R2)
最初のルールの解決策は素晴らしいです:
CSharpCodeProviderクラスには、検証の実装を容易にする IsValidIdentifier メソッドがあります。
(元:
string myColumnName = "blabla";
var isValid = _cSharpCodeProvider.IsValidIdentifier(myColumnName);
)
2番目のルールの解決策は少し冗長です:
Google検索を行う唯一の方法は、MSDNからキーワードを取得することです-予約済みキーワード(Transact-SQL)SQL Server 2008 R2
これらすべてのキーワードを返す string[] プロパティを作成するには...
(元:
public static class SqlReservedKeywords {
public static string[] SqlServerReservedKeywords {
get { return SqlServerKeywords; }
}
private static readonly string[] SqlServerKeywords = new[] {
"ADD","EXISTS","PRECISION",
//. . .
"EXEC","PIVOT","WITH",
"EXECUTE","PLAN","WRITETEXT"
};
}
//外部コード
var isValid = SqlReservedKeywords.SqlServerReservedKeywords.Contains(myColumnName);
)
2 番目の検証ルールの実装について教えてください。それは良い習慣ですか?たぶん、グーグルで見つけられなかった別の実装方法が存在する...