otrdiena, 2011. gada 2. augusts

Temporālas storētās procedūras

Šīsdienas atklājums- temporālas saglabātās procedūras.

Šobrīd gan man nenāk prātā neviens sakarīgs scenārijs, kad kaut kas šāds būtu nepieciešams. Lai nu kā, tieši tāpat, kā var izveidot temporālas tabulas, tāpat var izveidot temporālas saglabātās procedūras.

Lokālās temporālās procedūra (redzama tikai vienas konekcijas ietvaros, eksistē tik ilgi, cik eksistē konekcija, kas to izveidoja):
Create proc #tempProc
as
    select 'vienas konekcijas ietvaros' KadRedzama;
Globāla temporāla procedūra (redzama visās konekcijās, kamēr vien pēdējā konekcija kas to izmanto ir aizvērta):
Create proc ##tempProc
as
    select 'visās konekcijās' KadRedzama;
Temporālās procedūras, gluži tāpat kā temporālas tabulas, tiek glabātas TempDB datu bāzē. Līdz ar to, ja procedūras iekšienē ir jāizpilda vaicājums no kādas konkrētas datu bāzes tabulas, tad jānorāda pilns tabuluas nosaukums (datubāze.īpašnieks.tabulasNosaukums).

Izsaukt globālu (nosaukums sākas ar ##) temporālo storēto procedūru var visi servera lietotāji. Tas gan nenozīmē, ka tiem būs tiesības izpildīt procedūrā iekļautās komandas.

2 komentāri:

  1. Izklausās pēc izmisīga centiena pagarināt krānu. Man domāt, ka ar šādām lietām būtu jānodarbojas aplikācijai, nevis DBVS.

    AtbildētDzēst