Birden çok veritabanına sahip bir sunucum var. Her veritabanında bu veritabanları arasında dolaşmam ve bir kayıttaki bir değeri tek bir tabloda değiştirmem gerekiyor. Bu nasıl yapılabilir?Sunucudaki veritabanlarına geçin ve verileri güncelleyin
5
A
cevap
8
Dinamik SQL kullanabilirsiniz:
declare @query varchar(max)
set @query = ''
select @query = @query + 'UPDATE ' + name +
'.dbo.YourTable set value = 1 where id = 2; '
from master.sys.databases
where name <> 'master'
exec (@query)
3
her veritabanı için SQL uygulayacak olan bir belgesiz saklı yordam sp_MSForEachDB yoktur.
EXEC sp_msforeachdb 'PRINT ''?'''
The? veritabanı adıdır.
11
EXEC sp_MSForEachDB ' Use ?; UPDATE ?.dbo.MyTable SET MyValue=999 '
Teşekkürler Andomar. Her bir veritabanında daha özel olması gerekebileceğinden, bu durumun benim durumum için 'sp_MSForEachDB' saklı yordamından daha uygun olduğunu düşünüyorum. Bu yöntemi kullanarak, ihtiyaç duyduğum sonuçları almak için bir döngü ve çeşitli IF koşulları oluşturabilirim. Teşekkürler. – Curt