ストアドプロシージャには開発者のコメントとヘッダーがあり、展開プロセスの一環として、これらを顧客のコピーから削除したいと考えています。 SQL Server 2005内または別のツールでこれを実現する方法はありますか?SQLコメントを削除
答えて
あなたはこれをチェックすることもできます。
Remove Comments from SQL Server Stored Procedures。
注:これは、SQL Serverで許可されている - で始まるコメントは処理しません。それ以外の場合は、開発者にストリームを介してテキストを読み込む短いフィルタアプリケーションを作成させてからコメントを削除してもらうことになります。または、自分で書きます。
プロシージャ定義をテキストまたは.sqlファイルに保存してからバージョン管理すると仮定します。 notepadd++のようなものを使用して、必要な文字列を検索/置換してから、プロダクション/顧客タグとしてコミットすることができます。これはエレガントではなく、オプションです。私はサードパーティのツールを知らず、私のGoogle検索は他のポスターが投稿したのと同じ結果を返しました。
「ローカルでコメントを解析する」オプションを持つWinSQL(非常に便利で、大いに推奨)と呼ばれるSQLツールを使用します。
個人的にはあまり使用しませんが、私のストアドプロシージャをビルドするスクリプトを実行するときに誤って実行してしまい、データベースのprocソースからそれらを削除してしまいました。 :-)
でも無料版にはそのオプションがあります。
これは適しているかどうかわかりませんが、WITH ENCRYPTIONオプションを使用するとコンテンツ全体を非表示にすることができます。エンドユーザーは手順のいずれかを見たり変更したりする必要がありますか?質問が尋ねられたとき
私はこのオプションは、C#の
に自分のSQL comment removerを書いてしまいましたができませんでしたが、SQL 2012年に、我々は今、私たちを助けるためにSQL Serverの独自のパーサーを使用することができます。 Removing Comments From SQL
hereのように、C#の正規表現を使用してコメントを削除できます。ブロックコメントがネストされていても、行コメント、ブロックコメントに有効で、リテラルまたは括弧で囲まれた名前付き識別子の中にあるコメント区切り文字を正しく識別して無視することができます。
少し遅れて相手にしかし
CREATE FUNCTION [usf_StripSQLComments] (@CommentedSQLCode VARCHAR(max))
RETURNS Varchar(max)
/****************************************************************************************
--######################################################################################
-- [email protected] -- Some count sheep. Some code. Some write code to count sheep.
--######################################################################################
--#############################################################################
-- Sample Call Script
--#############################################################################
Declare @SqlCode Varchar(Max)
Declare @objname varchar(max) = 'sp_myproc'
select @Sqlcode = OBJECT_DEFINITION(t.OBJECT_ID)
from sys.objects t
where t.name = @objname
select dbo.ssf_StripSQLComments(@Sqlcode)
****************************************************************************************/
AS
BEGIN
DECLARE @Sqlcode VARCHAR(MAX) [email protected]
Declare @i integer = 0
Declare @Char1 Char(1)
Declare @Char2 Char(1)
Declare @TrailingComment Char(1) = 'N'
Declare @UncommentedSQLCode varchar(Max)=''
Declare @Whackcounter Integer = 0
Declare @max Integer = DATALENGTH(@sqlcode)
While @i < @max
Begin
Select @Char1 = Substring(@Sqlcode,@i,1)
if @Char1 not in ('-', '/','''','*')
begin
if @Char1 = CHAR(13) or @Char1 = CHAR(10)
Select @TrailingComment = 'N'
Else if not (@Char1 = CHAR(32) or @Char1 = CHAR(9)) and @TrailingComment = 'N' -- Not Space or Tab
Select @TrailingComment = 'Y'
if @Whackcounter = 0
Select @UncommentedSQLCode += @Char1
select @i+=1
end
else
begin
Select @Char2 = @Char1
, @Char1 = Substring(@Sqlcode,@i+1,1)
If @Char1 = '-' and @Char2 = '-' and @Whackcounter = 0
Begin
While @i < @Max and Substring(@Sqlcode,@i,1) not in (char(13), char(10))
Select @i+=1
if Substring(@Sqlcode,@i,1) = char(13) and @TrailingComment = 'N'
Select @i+=1
if Substring(@Sqlcode,@i,1) = char(10) and @TrailingComment = 'N'
Select @i+=1
End
else If @Char1 = '*' and @Char2 = '/'
Begin
Select @Whackcounter += 1
, @i += 2
End
else If @Char1 = '/' and @Char2 = '*'
Begin
Select @Whackcounter -= 1
, @i += 2
End
else if @char2 = '''' and @Whackcounter = 0
begin
Select @UncommentedSQLCode += @char2
while Substring(@Sqlcode,@i,1) <> ''''
Begin
Select @UncommentedSQLCode += Substring(@Sqlcode,@i,1)
, @i +=1
end
Select @i +=1
, @Char1 = Substring(@Sqlcode,@i,1)
end
else
Begin
if @Whackcounter = 0
Select @UncommentedSQLCode += @Char2
Select @i+=1
end
end
End
Return @UncommentedSQLCode
END
- 1. 削除コメントiniファイル
- 2. 削除コメントのJava
- 3. Teradata SQLテキストファイルからコメントを削除するVBA Regex
- 4. SQL削除ステートメントDidnt削除
- 5. Javaでコメントを削除するスクリプト
- 6. inner_htmlからコメントを削除する
- 7. Vim - XMLコメントを削除する
- 8. jquery選択したコメントを削除
- 9. Facebookのコメント付きコメントを削除するBox Plugin?
- 10. コメント以外のテキストからコメントを削除する
- 11. SQLルーピングを削除
- 12. SQL削除コマンド?
- 13. 文字列からSQLコメントを削除するためのJava正規表現
- 14. SQL削除TOPステートメント
- 15. SQLデータベースの削除
- 16. divsとsqlレコードを削除
- 17. Xcodeのコメントを解除コメント
- 18. SQL行を削除するチェックボックス/ファイルを削除する
- 19. fbからGraph APIによるコメントを削除:ユーザーが投稿したコメント?
- 20. 管理者コメントなしで自分のコメントを削除できるユーザー許可
- 21. SQL Server 2008マージソフト削除エラー
- 22. SQLバッチ処理の削除
- 23. 関連テーブルのSQL削除
- 24. の削除SQL ServerデータベースC#
- 25. LINQ to SQLの削除プロパティ
- 26. SQL Serverインスタンスの削除
- 27. SQLトランザクションレプリケーション - アーティクルの削除
- 28. SQL Serverの削除のジレンマ
- 29. PHPでHTMLコメントを削除するが条件を残す
- 30. レビューを公開した後でコメントを削除するには?
...全体で他の誰かつまずく場合は、この[解答](http://stackoverflow.com/a/33947706/3606250)をご確認ください – drizin