W zapytaniach SQL musisz czasami sięgnąć do wartości z poprzedniego lub następnego rekordu. W SQL 2012 służą do tego funkcje LAG (poprzedni rekord) oraz LEAD (następny rekord). Popatrz na przykład: USE tempdb; GO CREATE TABLE testlag (Year INT, Month INT, Value INT) GO INSERT testlag VALUES (2012,1,1000), (2012,2,2000), (2012,3,3000), (2012,4,4000), (2013,1,5000), (2013,2,6000), (2013,4,7000); Mamy tabelkę […]
Archiwum dla kategorii ‘SQL’
Funkcje LAG i LEAD – sięganie do poprzedniego i następnego rekordu
Wykorzystanie XACT_STATE do sprawdzenia stanu transakcji
Poniższy przykład pochodzi z http://msdn.microsoft.com/en-us/library/ms189797.aspx. Prezentuje on, jak można dobrze wykonywać transakcje i reagować na potencjalnie pojawiające się błędy. 1. Po pierwsze używaj opcji SET XACT_ABORT ON. Powoduje ona „awansowanie błędów” powodujących przerwanie pojedynczego STATEMENT na błędy powodujące przerwanie batcha, lub przejście do bloku CATCH w przypadku obsługi błędów poprzez TRY/CATCH 2 Używaj TRY/CATCH do […]
Mutator Write dla kolumny nvarchar(max)
Dopiero dzisiaj zauważyłem, że w SQL mamy coś takiego! Jest to metoda pozwalająca na dokonywanie zapisu do koluny nvarchar(max) w taki sposób, aby zmienić część tekstu na inny. Poniżej prezentuję przykład wzięty z http://decipherinfosys.wordpress.com/2007/07/24/update-textntext-or-varcharmax-data-type-columns-in-sql-server/ Popatrz na ten przykład: Tworzysz tabelkę: CREATE TABLE Test (ID INT IDENTITY, TXT NVARCHAR(MAX)) Wstaw do niej rekord: INSERT Test VALUES(’It […]
Korzystanie z aliasów SQL
Alias do serwera SQL musi być konfigurowany na systemie klienckim. Mało wygodne będzie jednak odiwedzanie komputeró po kolei i wyklikiwanie w nim definicji aliasu. Alias wystarczy zdefiniować na jednym komputerze, a następnie wyeksportować z rejestru i importować na pozostałych komputerach. Odpowiednia gałąź rejestru z aliasami serwera SQL to: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo Źródło: http://blogs.msdn.com/b/sql_protocols/archive/2007/01/07/connection-alias.aspx
250-ty wpis na tym blogu. Dowcipy o SQL
Wyjaśnienia dla niewtajemniczonych: DBA = Database Administrator COMMIT – polecenie zatwierdzające zapisanie danych/transakcji na dysku. Brak tego polecenia powoduje często odwołanie transakcji NULL – wartość nieokreślona w SQL JOIN/SELECT/DROP – pewne polecenia SQL A teraz przejdźmy do rzeczy. Jeśli dowcipy czyta ktoś spoza branży – uśmieszkami oznaczyłem miejsca, gdzie należy się śmiać: Q1: […]
Błąd podczas konfiguracji Always ON: The connection to the primary replica is not active.
Podczas kolejnego kroku konfiguracyjnego kreatora grupy Always On otrzymałem komunikat o błędzie: The connection to the primary replica is not active. Przyczyna była taka, że jeden z serwerów wykorzystywał inne konto usługi na którym działa SQL Server. Nie jest to błąd, jednak w takim przypadku konto suługi innego serwera musi mieć utworzony login do drugiego […]
SQL: Błąd: Login failed for user 'x’. The user is not associated with a trusted SQL Server connection.
Podczas definiowania replikacji transakcyjnej z updatable subscriptions otrzymałem komunikat o błędzie: Login failed for user 'x’. The user is not associated with a trusted SQL Server connection. Przyczyny były następujące: Brakowało jednego wspólnego loginu z uprawnieniami do replikowanej przeze mnie bazy danych Login ten nie był dodany do listy „Publication Access List” Na obu serwerach […]





























