0

私のデータベースにはたくさんのストアドプロシージャがあります。すべてが結果セットを返すように設計されています。私はすべてのキーワードで標準化された名前に従っています大文字したがって、SELECTステートメントのいずれかの予約されたキーワードとして列名またはテーブル名が大文字である場合。SQL Serverストアドプロシージャの予約済みのキーワードとしてColumnNamesまたはTableNamesを検索します。

これらの大文字のキーワードをキャメルケースに変換します。私の実際のストアドプロシージャの一例については

:変換後の

CREATE PROCEDURE prc_getresults 
AS 
BEGIN 
    SELECT ZD.Id 
     ,ZD.NAME 
     ,ZD.TIMESTAMP 
     ,ZD.CreatedBy 
    FROM ZoneDetails ZD 
    INNER JOIN ZONE Z ON Z.Id = ZD.ZoneId 
END 

私の期待のコードは、列名TimeStampNameとテーブルZoneをご覧ください。ここ

CREATE PROCEDURE prc_getresults 
AS 
BEGIN 
    SELECT ZD.Id 
     ,ZD.Name 
     ,ZD.TimeStamp 
     ,ZD.CreatedBy 
    FROM ZoneDetails ZD 
    INNER JOIN Zone Z ON Z.Id = ZD.ZoneId 
END 

だろう。

約700以上のストアドプロシージャがあります。私はそれぞれのコードを開いてこれらを手動で編集することができません。

データベース内のすべてのストアドプロシージャに対するこれらの変更をより適切に実装するためのアイデアを私に提供してください。 http://www.red-gate.com/products/sql-development/sql-search/ - - SQL Server用のRed-日付検索

+0

これを行うには、サードパーティのツールが必要です。私のお気に入りのフォーマッタhttp://www.dpriver.com/dlaction.php –

答えて

0

は、あなたがより良いこの素晴らしい無料のツールをダウンロードしたい

SELECT DISTINCT 
     o.name AS Object_Name, 
     o.type_desc 
    FROM sys.sql_modules m 
     INNER JOIN 
     sys.objects o 
     ON m.object_id = o.object_id 
WHERE m.definition In ('%\[TimeStamp\]%', '%\[Name\]%', '%\[Zone\]%'); 
+0

例を挙げましたが、実際にはすべてのキーワードをチェックする必要があります.... – StackUser

+0

T-SQLを使用してこれを行うことは不可能です –

0

、あなたの必要性については、以下のクエリを拡張することができます。

次にあなたが予約語を見つけるいくつかの作業をしなければならない - https://msdn.microsoft.com/en-us/library/ms189822.aspx

ツールはあなたに物事の非常に良好な視認性を提供しています。

関連する問題