ストアドプロシージャには開発者のコメントとヘッダーがあり、展開プロセスの一環として、これらを顧客のコピーから削除したいと考えています。 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. ストアドプロシージャからSQLコメントを削除する - SQL Server 2008 R2
- 2. 削除コメントiniファイル
- 3. 削除コメントのJava
- 4. Teradata SQLテキストファイルからコメントを削除するVBA Regex
- 5. - 削除方法 - SQL Serverのコメント2016 sys.sql_modulesの定義
- 6. SQL削除ステートメントDidnt削除
- 7. inner_htmlからコメントを削除する
- 8. jquery選択したコメントを削除
- 9. Javaでコメントを削除するスクリプト
- 10. コメント時のマージンを削除する
- 11. Vim - XMLコメントを削除する
- 12. Page Speedコメントを削除しない
- 13. コメント以外のテキストからコメントを削除する
- 14. Facebookのコメント付きコメントを削除するBox Plugin?
- 15. SQLルーピングを削除
- 16. SQL削除コマンド?
- 17. 文字列からSQLコメントを削除するためのJava正規表現
- 18. Xcodeのコメントを解除コメント
- 19. MongoDB:削除された投稿のコメントをすべて削除するには?
- 20. SQLデータベースの削除
- 21. SQL削除TOPステートメント
- 22. 行を削除 - SQL C#
- 23. divsとsqlレコードを削除
- 24. 管理者コメントなしで自分のコメントを削除できるユーザー許可
- 25. fbからGraph APIによるコメントを削除:ユーザーが投稿したコメント?
- 26. SQL行を削除するチェックボックス/ファイルを削除する
- 27. すべてのhtmlタグをSQLファイルから削除/削除
- 28. PHPでHTMLコメントを削除するが条件を残す
- 29. レビューを公開した後でコメントを削除するには?
- 30. "grep"を使ってファイルからコメントを削除するには?
...全体で他の誰かつまずく場合は、この[解答](http://stackoverflow.com/a/33947706/3606250)をご確認ください – drizin