IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: USE Database (cyklem na víc databází) ?

Aktivity
Avatar
Zbyněk Málek:20.4.2016 12:21

Mám menší, nebo možná větší problém... Jde nějak udělat, abych mohl při použití USE použít proměnnou (cyklus)? Vytvářím tmp databáze a potřebuju si z ní něco vycucnout, pak jí vyčistit a naplnit hodnotama z další databáze. TMPčka plním stored procedurama (např. sp_helpuser). Výsledkem bude tabulka v jedné databázi údržby, kam mám přístup, ve které by měli být sepsány všechny role jednotlivých userů ve všech DB na serveru (a další věci)...

 
Odpovědět
20.4.2016 12:21
Avatar
LacoS.
Člen
Avatar
LacoS.:23.4.2016 9:53

Ty vies ist aj do inej DB, len musis pouzit pred menom_tabulky/pro­cedury nazov tej druhej DB.

napr:

USE DB1
.
.
.
Select T2.StlpX, T3.StlpY from DB2.TabulkaX T1, DB3.TabulkaY T3 where T2.id=T3.id;

alebo

Select * from MenoDB4.menoTab where ...
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
23.4.2016 9:53
Avatar
Zbyněk Málek:25.4.2016 9:43

Dobré vědět, díky... Problém mám sice již vyřešený, ale k tomuto jen doplním, že jsem měl předem neurčený počet, ani názvy databází... Mělo to být univerzálně nasaditelné, pak bych řešil stejný problém u FROM části, kam proměnné taky nemůžu nacpat... (sp_executeSQL mi pomohlo)

 
Nahoru Odpovědět
25.4.2016 9:43
Avatar
Zbyněk Málek:27.4.2016 16:42

Pokud to bude někdo číst zpětně... exec sp_msForEachDb ' use [?]
select db_name() as [database_name], r.[name] as [role], p.[name] as [me|] from
sys.database_ro­le_members m
join
sys.database_prin­cipals r on m.role_principal_id = r.principal_id
join
sys.database_prin­cipals p on m.member_prin­cipal_id = p.principal_id
'

Tohle je ještě elegantnější způsob než sp_executeSQL...

 
Nahoru Odpovědět
27.4.2016 16:42
Avatar
Peter Okuliar:27.4.2016 17:26

Dobry den,vedel by mi niekto napisat v SQL tieto priklady:
1.
Napíšte príkaz SELECT nad databázou JvsPrefa, ktorý zobrazí zoznam položiek na skladoch 30 a 40 spoločnosti 7 (Prefa Invest a.s.) so zostatkom na sklade >= 1000 (zobrazte aj zostatok).
Riadky budú zoradené podľa veľkosti zostatku zostupne.

Vzor:
Číslo skladu
Názov skladu
Číslo položky
Názov položky
Zostatok na sklade
MJ

2.
Napíšte príkaz SELECT nad databázou JvsPrefa, ktorý zobrazí zoznam 100 položiek spoločnosti 7 (Prefa Invest a.s.) s najnižším nenulovým zostatkom na všetkých skladoch dokopy.
Riadky budú zoradené podľa veľkosti zostatku vzostupne.

Vzor:
Číslo položky
Názov položky
Zostatok na všetkých skladoch
MJ

 
Nahoru Odpovědět
27.4.2016 17:26
Avatar
Odpovídá na Peter Okuliar
Michal Štěpánek:28.4.2016 7:37

To, že napíšeš svůj dotaz do správné sekce, ale "vecpeš" se někomu do jeho dotazu, resp. více lidem do dotazů to k vyřešení nepomůže. Kdybys radši hledání věnoval desetinu času, který si strávil napsáním toho dotazu, tak bys to měl už dávno vyřešené...
http://www.itnetwork.cz/…vyhledavani/

Nahoru Odpovědět
28.4.2016 7:37
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Peter Okuliar:28.4.2016 8:09

sorry...uz to mam vyriesene,prepacte ze som si dovolil otravovat.povayujte moj prispevok za ukonceny.

 
Nahoru Odpovědět
28.4.2016 8:09
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.