Forum
Merhalar, database bazında loginleri user role ve server role almak için bir script hazırladım.
Sorunum şu procedure haline getirmek ve bir db parametresi atamak istiyorum.
Sorgunun kullanımda olan database göre çalışmasını sağladım ama procedure içine bir türlü paramatre olarak yazamadım.
Procedure içinde Use kullanımını nasıl sağlarım yardımlarınızı bekliyorum.
dynamic sql kullanmalısınız. sp_execute ya da exec('') içerisinde dinamik sql komutunuzu çalıştırabilirsiniz.
merhaba,
cevap için teşekkürler. Fakat attığım parametreyi almıyor.
şöyleki
@dbname nvarchar(max)
Exec('Use '+ @dbName + ';')
Merhaba,
Aşağıdaki sorguyu deneyebilir misiniz.
DECLARE @DATABASE varchar(60),@SQL NVARCHAR(MAX)
SET @DATABASE = 'GODATA'
SET @SQL = 'USE '+QUOTENAME(@DATABASE)+' SELECT * FROM LG_006_CLCARD ;'
EXECUTE(@SQL)
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]
SELECT * FROM LG_006_CLCARD
şu kısmı anlamadım hocam. yine seçmiyor.
'GODATA' kısmına parametre olarak atadığım @dbname ile eşleştiriyorum ama sorgudaki SELECT * FROM LG_006_CLCARD bu kısmı anlamadım
Merhaba,
Use normalde direk çalıştırdığımız zaman ilgili dataya gitmektedir.
Örneğin;
Use Deneme şeklinde sorgu çalışır.
Fakat Exec içinde olduğu zaman ilgili dataya üstteki örnek gibi işlem yapmıyor maalesef, sadece
değişken için ilgili datada olduğumuz belirtikten sonra o datayla ilgili sorguyu yazabiliriz. Bende
Logo veri tabanı olduğundan için yukarıdaki örnek sorguyu yazdım.
DECLARE @DATABASE varchar(60),@SQL NVARCHAR(MAX)
SET @DATABASE = 'GODATA' /* godata yazan yere işlem yapmak istediğiniz datayı yazın*/
SET @SQL = 'USE '+QUOTENAME(@DATABASE)+' SELECT * FROM LG_006_CLCARD /*fromdan sonra o datada olan tablo adını yazın.*/ ;'
EXECUTE(@SQL)
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]
hocam yardımlarınız için teşekkürler. Kontrol edicem tekrar ama anladım şimdi