Indeksy stanowią niezwykle ważny obiekt bazodanowy, którego zadaniem jest przyspieszenie dokonywania operacji na danych. Podstawowe informacje na temat indeksów przedstawiłem w formie wypunktowania poniżej. Wpis ten nie jest wytłumaczeniem od początku do końca jak działają indeksy, ponieważ takich wpisów istnieje wiele i można bez problemu takie odnaleźć. Wpis ten stanowi po prostu luźne notatki na…
Miesiąc: Sierpień 2016
Tabele wirtualne w operacji UPDATE w SQL Server
Pod maską SQL Server kryje niespodziankę odnośnie update ‚u rekordów. Zobaczmy to na przykładzie – zacznijmy od przygotowania prostej tabelki.
1 2 3 4 5 6 7 8 |
CREATE TABLE #tabelka (ID int, nazwa NVARCHAR(MAX)) INSERT INTO #tabelka VALUES (1, 'super nazwa') INSERT INTO #tabelka VALUES (2, 'ekstra nazwa') --Wyświetlenie zawartości tabeli #tabelka SELECT * FROM #tabelka |
Drugim krokiem będzie update pola „nazwa” dla rekordu o ID=1.
1 2 3 4 5 6 7 |
--Które rekordy zostały wstawione? UPDATE #tabelka SET nazwa = 'niebywała nazwa' OUTPUT inserted.* WHERE id = 1 SELECT * FROM #tabelka |
Wyświetliliśmy w tym przypadku za pomocą tzw. tabeli wirtualnej nowowstawiony rekord. Przywróćmy starą nazwę dla rekordu o ID=1. Następnie zweryfikujmy jaki rekord zostaje usuwany przy operacji…
Jak sprawdzić czy dany login jest przypisany do konkretnej roli serwerowej?
Pytanie wydaje się banalne, ale czasami okazuje się, że dany użytkownik np. może przynależeć do grupy domenowej lub dziedziczyć uprawnienia nie wprost. W tym przypadku warto skorzystać z funkcji IS_SRVROLEMEMBER:
1 2 3 4 5 6 7 8 9 |
DECLARE @RoleName NVARCHAR(30) SET @RoleName = 'sysadmin' IF IS_SRVROLEMEMBER (@RoleName) = 1 print 'Obecny login użytkownika jest członkiem roli ' + @RoleName + '.' ELSE IF IS_SRVROLEMEMBER ('sysadmin') = 0 print 'Obecny login użytkownika NIE jest członkiem roli ' + @RoleName + '.' ELSE IF IS_SRVROLEMEMBER ('sysadmin') IS NULL print 'BŁĄD: Nazwa roli nie jest prawidłowa.' |
Inne role, to: sysadmin, serveradmin, dbcreator, setupadmin, bulkadmin, securityadmin, diskadmin, public, processadmin. Zakładając, że mamy dwa loginy, z których jeden jest przypisany do roli sysadmin, a drugi…
Czym jest instancja SQL Server?
Na samym początku mojej przygody z SQL Server dość trudno było mi zrozumieć termin „instancja”. Teraz wydaje mi się to trywialne, ale jeśli ktoś zastanawia się nad sensem tego terminu, to warto przeczytać ten wpis. W książkach z SQL Server można odnaleźć próbę tłumaczenia słowa „instancja” jako „egzemplarz systemu”. Szczerze mówiąc sformułowanie to na początku bardzo mnie bolało w…