SQL 2005'te, tüm saklı yordamlarımı bireysel .sql dosyalarına dağıtmak için basit bir işlem var mı. Onları VSS'ye taşımak istiyorum, ama kaynak metin almak için her birine tıklatma olasılığı ile çok heyecanlı değilim ve bir metin dosyasına döküyoruz ..Saklanan Yordamlar .sql dosyaları
cevap
SQL Management Studio'da veritabanına sağ tıklayın, görevlere gidin -> Script Oluştur, sihirbazın adım adım ilerlemesi. Sayfalardan biri, her bir nesneyi kendi dosyasına kopyalamanıza izin verecektir.
Bu select'i çalıştırabilirsiniz:
select
O.name, M.definition
from
sys.objects as O
left join
sys.sql_modules as M
on O.object_id = M.object_id
where
type = 'P'
ve saklı yordamların adını ve kaynak kodunu alırsınız. Şüphesiz en kolay yol, dosyalara nasıl yerleştirileceği, bazı "klasik" C#, java, vb. Gibi dilde…
Tüm veritabanınızın sürümünü kullanmak istiyorsanız, Microsoft'un bir SQL Server Veritabanı Yayımlama Sihirbazı vardır (bunu here karşıdan yükleyebilirsiniz). Genel bakış, Visual Studio'yla doğrudan bütünleşmenin olduğunu söylüyor, ancak ne kadar iyi (veya kötü) olabileceğini kefil etmek için kişisel olarak kullanmadım.
Veritabanı nesnesi başına tek bir .sql dosyası oluşturma seçeneği bulunan SMOscript adlı bir araç yazdım.
CREATE ve DROP komut dosyaları oluşturmak için SQL Server'ın SMO kütüphanesini kullanır.
Sql Server SMO'u kullanmayı deneyin. Bir örnek aşağıda bulunmaktadır:
//C:\Program Files\Microsoft SQL Server\{version}\SDK\Assemblies\
using Microsoft.SqlServer;
using Microsoft.SqlServer.Server;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
using System.Data.SqlClient;
string sqlConnectionString="";
string databaseName="";
var Connection = new SqlConnection(sqlConnectionString);
Connection.Open();
int counter = 0;
var db= new Server(new ServerConnection(Connection)).Databases[databaseName];
foreach (var item in db.StoredProcedures.OfType<StoredProcedure>())
{
if (item.IsSystemObject == false)
{
using (TextWriter writer = new StreamWriter(item.Name+".sql", false))
{
writer.WriteLine(item.TextHeader + item.TextBody);
}
}
}
Ayrıca, farklı bir .sql dosyası seçilen veritabanı saklı yordam komut dosyaları oluşturmak için aşağıdaki komut dosyasını kullanabilirsiniz, dosyalar prosedürün adıyla oluşturmak olacaktır.
dinamik sorgu ve imleci kullanarak, bunu şöyle yapabilirsiniz:
DECLARE @name varchar(100)
DECLARE @Definition varchar(max)
DECLARE @sql varchar(300)
CREATE TABLE TEMPTABLE (ID INT IDENTITY(1,1), def varchar(max))
DECLARE script CURSOR
FOR
SELECT OBJECT_NAME(SYS.SQL_MODULES.OBJECT_ID), [DEFINITION] FROM
SYS.SQL_MODULES INNER JOIN SYS.OBJECTS ON
SYS.OBJECTS.OBJECT_ID = SYS.SQL_MODULES.OBJECT_ID
WHERE SYS.OBJECTS.TYPE='P'
OPEN script
FETCH NEXT FROM script INTO @name, @Definition
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM script INTO @name, @Definition
INSERT INTO TEMPTABLE VALUES(@definition)
SET @Sql = ('BCP "SELECT TOP 1 def FROM TEMPTABLE ORDER BY ID DESC" queryout "C:\' + @name + '.sql" -c -T')
EXEC XP_CmdShell @Sql
END
CLOSE script
DEALLOCATE script
DROP TABLE TEMPTABLE
- 1. Saklanan Yordamlar ve güncelleştirme EDMX
- 2. MySQL'de Schema navigator'dan saklanan Saklı Yordamlar ve İşlevler
- 3. MS-SQL Server 2005 ve Oracle'da Depolanan Yordamlar
- 4. SQL OUTPUT Saklı Yordamlar ExecuteReader ile çalışmaz
- 5. Kayıtlı yordamlar ve genişletilmiş saklı yordamlar arasındaki fark
- 6. Saklı yordamlar OLMADAN parametreli sorgular?
- 7. Saklanan Yordam T-SQL Boole kontrolü
- 8. SQL saklı yordamlar büyük/küçük harfe duyarlıdır? örneğin
- 9. Yerel diskte saklanan Outlook msg dosyaları, delphi ile nasıl okunabilir
- 10. MySQL saklı yordamlar sözdizimi hatası
- 11. SQL Server 2008'in düşürülmüş saklanan proses kayıtları
- 12. Bir tablonun bir sütununda saklanan dinamik bir SQL deyimi yürütme
- 13. SQL Server'da bir XML sütununda saklanan XML güncelleştirmesi
- 14. MySQL: Saklı yordamlar atomik olarak nasıl değiştirilir?
- 15. Sybase ASE'de saklı yordamlar nasıl hata ayıklanır?
- 16. Bir SQL İşini silmek için T-SQL komut dosyaları aranıyor
- 17. BCP sorgulama görüntüleri varbinary (max) içinde saklanan
- 18. Genel değişkende saklanan işlev,
- 19. Postgres'te saklanan maksimum tarih
- 20. burada saklanan veriler d3
- 21. Erişimde (.accdb) saklanan görüntüler nasıl kaldırılır?
- 22. Depolanan Prosedürler için SQL Server Performans Ayarlarını Denetleme
- 23. Başka bir SQL komut dosyasından SQL komut dosyası nasıl aranır?
- 24. Dahili bellekte saklanan görüntüleri paylaşma
- 25. Saklanan Değerlerin Sınıfını Listeleme Çıktısı
- 26. Saklanan Prosedürün Sonuç Kümesini Filtreleme
- 27. Önceden saklanan çerezleri Mechanize'den kaldırın
- 28. değişkenlerde saklanan öğelerin niteliklerini ayarlama
- 29. Jenkins'de saklanan şifreleme anahtarı nerede?
- 30. Saklanan bir prosedüre geçiş verisi
Nice'i! Bunu bilmiyordum. – VVS