特定のデータベースからすべてのストアドプロシージャをダウンロードする必要があります。特定のデータベースからすべてのストアドプロシージャをダウンロードする方法
約130個のストアドプロシージャがありますが、私は手動でファイルごとにセーブするようにすることができます。
すべてをダウンロードする自動オプションはありますか?
特定のデータベースからすべてのストアドプロシージャをダウンロードする必要があります。特定のデータベースからすべてのストアドプロシージャをダウンロードする方法
約130個のストアドプロシージャがありますが、私は手動でファイルごとにセーブするようにすることができます。
すべてをダウンロードする自動オプションはありますか?
1)SQL Server Management Studioを開き 2)オブジェクトエクスプローラ 3でデータベースを選択します)右クリック>タスク]> [スクリプト
4の生成)をスクリプト化するための唯一のストアドプロシージャを選択します手順をウィザードに従う
5)。次の画面で、オプションSingle file per object
を選択し、それらのファイルを配置するディレクトリを定義します。これらのオプションでは
、あなたはあなたの選択したディレクトリに保存されたストアドプロシージャあたりつのファイルを取得。
これは管理スタジオで行うことができます - 必要なデータベースを右クリックし、タスクを選択 - >スクリプトを生成 - >ウィザードを実行します。
SET NOCOUNT ON
DECLARE @Test TABLE (Id INT IDENTITY(1,1), Code VARCHAR(MAX))
INSERT INTO @Test (Code)
SELECT 'IF object_ID(N''[' + schema_name(schema_id) + '].[' + Name + ']'') IS NOT NULL
DROP PROCEDURE ['+ schema_name(schema_id) +' ].[' + Name + ']' + CHAR(13) + CHAR(10) + 'GO' + CHAR(13) +CHAR(10) +
OBJECT_DEFINITION(OBJECT_ID) + CHAR(13) +CHAR(10) + 'GO' + CHAR(13) + CHAR(10)
FROM sys.procedures
WHERE is_ms_shipped = 0
DECLARE @lnCurrent INT, @lnMax INT
DECLARE @LongName VARCHAR(MAX)
SELECT @lnMax = MAX(Id) FROM @Test
SET @lnCurrent = 1
WHILE @lnCurrent <= @lnMax
BEGIN
SELECT @LongName = Code FROM @Test WHERE Id = @lnCurrent
WHILE @LongName <> ''
BEGIN
PRINT LEFT(@LongName,8000)
SET @LongName = SUBSTRING(@LongName, 8001, LEN(@LongName))
END
SET @lnCurrent = @lnCurrent + 1
END
あなたはまた、すべてのストアドプロシージャをクリックして選択します+シフトすることができますし、右クリックすることができ、スクリプト:あなたは、あなたはまた、このようなスクリプトを使用することができます
などだけでストアドプロシージャを指定することができますそれらをファイルに保存します。
DB pro(データベース用のVisual Studioツール)でもこれを行うことができます。 詳細については、こちらをご確認ください - https://www.mssqltips.com/sqlservertip/2971/creating-a-visual-studio-database-project-for-an-existing-sql-server-database/
編集:古いリンクが更新されました。
残念ながら、リンクは現在死んでいます。そのような理由から、リンクのみの回答はお勧めできません。回答が編集されて一部のコンテンツが含まれている場合は、保存することができます。 –
こんにちは私はそれぞれのSPのための130の別々のファイルを望んでいます:(それは私にただ一つのファイルを与えています – Neo
@ashuthinks:どこにいても好きですか?ウィザードを通してステップ - または格納されているprocごとに1つのファイルを作成し、それらを保存する場所を尋ねます... –
@ashuthinks:私の3番目のスクリーンショットを見てください - それはあなたが探しているものですか? –