Oto, jak przy pomocy PowerShella można zmienić konto na jakim pracuje wybrana instancja SQL Servera: function ChangeSqlServiceAccount($serverName, $instanceName, $userName, $password) { #ladowanie SMO odpowiedzialnego za konsole uslug sql [System.Reflection.Assembly]::LoadWithPartialName(„Microsoft.SqlServer.SqlWmiManagement”) $SMOWmiserver = New-Object (’Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer’)$serverName #Odnalezienie zadanej instancji $ChangeService=$SMOWmiserver.Services | where {$_.Name -eq $instanceName} #Zmiana konta $ChangeService.SetServiceAccount($userName, $password) } Jeśli zdefiniowałeś w/w funkcję to wywołujesz […]
Archiwum dla kategorii ‘SQL’
Zmiana konta usługi SQL z PowerShell
Jak zabić procesy użytkowników korzystających z bazy danych?
Moje rozwiązanie, to przestawić bazę w tryb SINGLE USER kończąc natychmiast wszystkie otwarte transakcje: ALTER DATABASE AdventureWorks SET SINGLE_USER WITH ROLLBACK IMMEDIATE a potem przełączyć bazę w tryb MULTI_USER: ALTER DATABASE AdventureWorks SET MULTI_USER Rozwiązanie z http://www.sqlservercentral.com/articles/Backup+%2f+Restore/71272/
Audyt w oparciu o trigger
Budując audyt możesz skusić się na śledzenie modyfikacji rekordów w taki sposób aby zapamiętać zmianę każdego rekordu, jego wstawienie lub usunięcie tak, aby wiadomo było kto i kiedy był autorem jakiej poprawki. Łatwo to osiągnąć stosując triggery, ale pamiętaj, że nie jest to w 100% poprawny audyt, bo triggery administrator może wyłączyć, albo może skasować […]
TOP od tyłu (z końcowymi rekordami)
Trzeba uporządkować rekordy wg pewnej kolumny, w naszym przykładzie dajmy na to wg orderid. Spośród tych rekordów chcemy wybrać tylko 5 ostatnich. Ha nic w tym trudnego, wystarczy takie zapytanie: SELECT TOP(5) orderid FROM Sales.Orders ORDER BY ordered DESC …tylko, że użytkownik chce zobaczyć te rekordy ułożone w kolejności rosnącej. Jeśli w zapytaniu zmienisz DESC […]
Niespójność w PARSE i ISNUMERIC
Wydawać by się mogło, że jeśli funkcja ISNUMERC stwierdziła, że przekazany w argumencie tekst jest poprawnym wyrażeniem numerycznym, to funkcja PARSE powinna umieć ten napis poprawnie skonwertować na liczbę. Tymczasem: SELECT ISNUMERIC(‘1E3’) zwraca true SELECT PARSE(‘1E3 As FLOAT) zwraca 1000, czyli póki co wszystko działa. Ale: SELECT ISNUMERIC(‘1+E3’) zwraca true SELECT PARSE(‘1+E3 As FLOAT) zwraca […]
Jak usunąć ze zmiennej DATETIME część dotyczącą sekund i pozostałe, zostawiając datę i czas z dokładnością do minuty
Problem jest następujący. Mamy czas z taką dokładnością jak np DATETIME lub DATETIME2. Chcemy pozbyć się części od sekund w dół, czyli mają pozostać tylko data, godzina i minuta. Z pomocą przychodzi tym SMALLDATETIME. Działa on z dokładnością do sekund, ale… kiedy konwertujesz do niego, to funkcja CAST przeprowadza konwersję z dokładnością do minut! Czemu […]
Generowanie tabeli interwałów czasowych
Problem jest następujący. Potrzebna jest tabela wypełniona godzinami (lub datami), w oparciu o którą dalej będzie można budować wyrażenie JOIN dobierające dane z innej tabeli tak aby agregować wszystkie zdarzenia z danej godziny razem. Oto moja propozycja: CREATE PROCEDURE dbo.GetIntervals @dateTimeStart DATETIME, @countMax INT AS BEGIN CREATE TABLE #time ( StartInterval SMALLDATETIME, StopInterval SMALLDATETIME)