veritabanları bırakma ve yeniden oluşturma Microsoft SQL Server 2008 R2 SP1 ile deneme ve öğreniyorum. Birçok denemeler yaptığım bir veritabanım var. Şimdi onu bırakmak ve yeniden yaratmak istiyorum. Bu yüzden, oluşturma komut dosyasını veritabanından ayırıyorum, onu siliyorum ve yeniden oluşturmak için betiği kullanıyorum. Sürprizime göre, tüm masalar, anahtarlar vb. Veritabanını nasıl sıfırlayabilirim, böylece veritabanını sıfırdan yeniden oluşturabilir miyim?Microsoft SQL Server
cevap
USE master
IF EXISTS(select * from sys.databases where name='yourDBname')
DROP DATABASE yourDBname
CREATE DATABASE yourDBname
Ben Bu veritabanında her şeyi (masalar, anahtarlar vb) yönelik oluşturma komut dizisini veritabanı
den oluşturma komut dizisini. sadece boş bir veritabanı oluşturmak istiyorsanız, sadece kod rolünden dolayı AnandPhadke için CREATE DATABASE <dbname>
+1 çalıştırmak
sonra veritabanına tüm etkin bağlantıları kapatıp olacak Bu kod bunu
damlaWHILE EXISTS(select NULL from sys.databases where name='YourDBName')
BEGIN
DECLARE @SQL varchar(max)
SELECT @SQL = COALESCE(@SQL,'') + 'Kill ' + Convert(varchar, SPId) + ';'
FROM MASTER..SysProcesses
WHERE DBId = DB_ID(N'YourDBName') AND SPId <> @@SPId
EXEC(@SQL)
DROP DATABASE [YourDBName]
END
GO
CREATE DATABASE YourDBName
GO
Birden çok kez yazılacak DBName gerekli olduğunda hata eğilimli, bir noktada tutarsız girişler ve istenmeyen sonuçlarla yürütülür.
AnandPhadke veya Pierre'in değişken destekli cevapları benim için tercih edilebilir.
DECLARE @DBName varchar(50) = 'YourDatabaseName'
USE master
IF EXISTS(select * from sys.databases where name= @DBName)
EXEC('DROP DATABASE ' + @DBName)
EXEC('CREATE DATABASE ' + @DBName)
veya
DECLARE @DBName varchar(50) = 'YourDatabaseName'
WHILE EXISTS(select NULL from sys.databases where name = @DBName)
BEGIN
DECLARE @SQL varchar(max)
SELECT @SQL = COALESCE(@SQL,'') + 'Kill ' + Convert(varchar, SPId) + ';' FROM MASTER..SysProcesses WHERE DBId = DB_ID(@DBName) AND SPId <> @@SPId
EXEC(@SQL)
EXEC('DROP DATABASE ' + @DBName)
END
GO
Bu benim için en iyi şekilde çalışır: (?)
if exists (select name from sys.databases where name='YourDBName')
alter database YourDBName set single_user with rollback immediate
go
if exists (select name from sys.databases where name='YourDBName')
drop database YourDBName
Bu soruya gerçekten cevap vermiyor. Farklı bir sorunuz varsa, [Soru Sor] 'u tıklayarak sorabilirsiniz (http://stackoverflow.com/questions/ask). Yeterli [itibara] sahip olduğunuzda [http://stackoverflow.com/help/] de bu soruya daha fazla dikkat çekmek için [bir hediye] ekleyebilirsiniz (http://stackoverflow.com/help/privileges/set-bounties). neyin-itibar). - [Yorum Yaz] (/ review/düşük kaliteli yazılar/12598382) –
Bu cevabı yanlış yazdığınızı düşünüyorum, KhanImranAli. Bu, zayıf olsa da, cevap vermeye çalışır. Bu, işaretleme ve olumsuz inceleme yoluyla değil oylamayla yönetilmelidir. – Palec
Lütfen kodunuzun ne yaptığını ve bu soruya nasıl cevap verdiğini açıklayın. Bir kod snippet'ini cevap olarak alırsanız, bununla ne yapacağınızı bilmeyebilirsiniz. Cevap, OP ve gelecek ziyaretçilere rehberlik etmelidir. Konuya dikkat etmek gerekirse, kodunuzun ardındaki fikir, sorunu anlamada ve çözümünüzü uygulamada veya değiştirmede büyük ölçüde yardımcı olur. – Palec
SQL Server (ve üzeri) 2016 desteği bir satır ve atomik sözdizimi DROP DATABASE IF EXISTS database_name
REF : https://msdn.microsoft.com/en-us/library/ms178613.aspx
- 1. Microsoft SQL Server 2012
- 2. microsoft sql server 2008
- 3. Microsoft SQL Server Yayımlama
- 4. Microsoft SQL Server e-posta doğrulaması
- 5. Microsoft SQL Server Yönetimi'ni kullanarak bir TABLO çoğaltma
- 6. İstemci İstatistik tablosu (Microsoft SQL Server Management Studio)
- 7. microsoft sql server: kullanıcıların kendi izinlerini kontrol et
- 8. Microsoft SQL Server "Express" sürümleri üzerinde geliştirme yapmak serbest mi?
- 9. Microsoft SQL Server 2016 Release Candidate 0 (RC0) Kurulum
- 10. Microsoft SQL Server'a Oracle SQL Developer bağlantısı
- 11. SQL Server Express Edition
- 12. SQL Server
- 13. Sql Server
- 14. [SQL Server]
- 15. SQL Server
- 16. SQL Server
- 17. SQL Server
- 18. SQL Server
- 19. SQL Server
- 20. SQL Server
- 21. SQL Server:
- 22. SQL Server
- 23. SQL Server
- 24. SQL Server JBDC Sürücü karşılaştırması
- 25. SQL Server Hatası 223 Bağlanıyor
- 26. Bir Microsoft SQL sunucusu 2005 olması SQL Server Broker çok uzun süre
- 27. Microsoft SQL Server 2012'den örnek sorgu T-SQL temel çalışmıyor
- 28. SQL Server NVARCHAR için PostgreSQL Eşdeğer nedir? Bir Microsoft SQL Server veritabanı NVARCHAR (veya NTEXT) veri türü alanlarını varsa
- 29. SQL Server Profiler SQL deyiminde
- 30. Microsoft CRM SQL Bağlantı Hatası
Haklısın, sorum benim için aptalcaydı. Aslında, görmeye devam ettiğim tablolar aslında veritabanımda değil, ana veritabanında oluşturuldu. –
Bu bana çok yardımcı oldu! –