poniedziałek, 10 marca 2014

Szukanie procedury składowanej zawierającej ciąg znaków

Ostatnio zdarzyło mi się, że musiałem znaleźć wszystkie procedury składowane zawierające słowo "external". O tyle ważne, że w SQL Server 2012 jest to zarezerwowane słowo kluczowe a nasza baza danych, która wcześniej nie działała na SQL Server 2012 dość liberalnie podchodziła do użycia słowa "external" w procedurach składowanych m.in. nie zapisując nazwy tabeli o nazwie "external" w nawiasy kwadratowe. Czyli zamiast dbo.NazwaTabeli.[External] było dbo.NazwaTabeli.External. Przy takim zapisie program wywalał się wykonując procedurę składowaną na SQL Server 2012. 
Aby zatem znaleźć procedury składowane zawierające pewien ciąg znaków, można wykorzystać taki kod:

SELECT DISTINCT o.name AS Object_Name,o.type_desc
FROM sys.sql_modules m 
INNER JOIN sys.objects o 
ON m.object_id=o.object_id
WHERE m.definition Like '%external%'
order by Object_Name

czwartek, 6 marca 2014

Czyszczenie ClickOnce application cache bez mage.exe

Dawno temu kiedy zaczynałem przygodę z ClickOnce stworzyłem skrypcik, która czyścił application cache.
Generalnie wykorzystywała ona plik mage.exe w następujący sposób:

mage.exe -cc

Okazuje się, iż jest możliwość wyczyszczenia application cache dla ClickOnce bez potrzeby korzystania z aplikacji mage.exe
Wystarczy w oknie komend wpisać następującą komendę:

rundll32 dfshim CleanOnlineAppCache

EDIT:
Wygląda na to, iż powyższa komenda nie czyści jednak application cache. 
Ktoś na forum stackoverflow napisał, że działa ona tak samo jak mage.exe -cc:
I wanted to add the posters comment to my answer so people don't miss it. You don't have to have mage installed to clear the cache; running rundll32 dfshim CleanOnlineAppCache from the command line accomplishes the same thing as mage -cc.
Jednak z własnego doświadczenia muszę stwierdzić, że jednak nie. Nie jestem do końca pewien jaka jest różnica, gdy znajdę, na pewno to napiszę.