Użytkownicy wpisują wyszukiwane hasło w polu, a ta wartość jest przekazywana do procedury składowanej i sprawdzana względem kilku różnych pól w bazie danych. Te pola nie zawsze są tego samego typu danych. Jedno pole (numer telefonu) składa się ze wszystkich cyfr, więc podczas sprawdzania usuwa wszystkie znaki nienumeryczne z ciągu …
Napisałem funkcję cenioną w tabeli w Microsoft SQL Server 2008, aby wziąć kolumnę rozdzielaną przecinkami w bazie danych i wypluć osobne wiersze dla każdej wartości. Przykład: „jeden, dwa, trzy, cztery” zwróci nową tabelę z tylko jedną kolumną zawierającą następujące wartości: one two three four Czy ten kod wygląda na podatny …
Mam dwa stoliki, w których przechowuję: zakres adresów IP - tabela przeglądowa kraju lista żądań pochodzących z różnych adresów IP Adresy IP były przechowywane jako bigints, aby poprawić wydajność wyszukiwania. Oto struktura tabeli: create table [dbo].[ip2country]( [begin_ip] [varchar](15) NOT NULL, [end_ip] [varchar](15) NOT NULL, [begin_num] [bigint] NOT NULL, [end_num] [bigint] …
Podczas tworzenia procedury składowanej w SQL Server możesz odwoływać się do tabel, które nie istnieją. Ale jeśli tabela istnieje, to każda kolumna, do której odwołujesz się w procedurze, musi istnieć w tej tabeli ( rozpoznawanie nazw odroczonych ). Czy można polecić SQL Serverowi odroczenie rozpoznawania nazw wszystkich tabel, do których …
Ostatnio otrzymałem zadanie wydrukowania wszystkich liczb pierwszych (1-100). Tam drastycznie mi się nie udało. Mój kod: Create Procedure PrintPrimeNumbers @startnum int, @endnum int AS BEGIN Declare @a INT; Declare @i INT = 1 ( Select a = @startnum / 2; WHILE @i<@a BEGIN @startnum%(@a-@i) i=i+1; ) END Chociaż nie udało …
Próbuję zaktualizować tabelę o tablicę wartości. Każdy element w tablicy zawiera informacje pasujące do wiersza w tabeli w bazie danych SQL Server. Jeśli wiersz już istnieje w tabeli, aktualizujemy ten wiersz o informacje w podanej tablicy. W przeciwnym razie wstawiamy nowy wiersz do tabeli. Zasadniczo opisałem upsert. Teraz staram się …
Nawet po przeczytaniu Przewodnika wydajności ładowania danych nadal nie jestem pewien, czy konieczne jest dodanie podpowiedzi do tabeli TABLOCK do pustej tabeli tymczasowej, zdefiniowanej za pomocą indeksu klastrowego, aby uzyskać minimalne rejestrowanie. Oczywiście tabela temp jest tworzona w TempDB, który działa w trybie odzyskiwania SIMPLE, więc pomyślałbym, że jest idealnym …
Zawsze wiedziałem o UNIONoperatorze w SQL, ale dopiero niedawno odkryłem, że istnieją inne operatory zestawu INTERSECTi EXCEPT. Nie udało mi się znaleźć operatora, który wykonałby czwarty operator dużego zestawu, różnicę symetryczną (np. Odwrotnie INTERSECT.) Wygląda na to, że mogę uzyskać pożądaną moc wyjściową za pomocą czegoś takiego SELECT Field FROM …
Muszę napisać funkcję, aby otrzymać znak ciągu i zwrócić format daty. Na przykład dane wejściowe to 20120101 i potrzebuję tego 01.01.2012. Problem polega na tym, że mogą występować nieprawidłowe dane, takie jak ten „2012ABCD”. W takim przypadku chcę, aby funkcja zwróciła ustaloną datę, na przykład 2020-01-01. Do tej pory napisałem: …
Kiedy uruchomię następujące select t.type from (values ('Green'),('Blue'),('Red')) as t(type) for xml path('') Otrzymuję ten wynik <type>Green</type> <type>Blue</type> <type>Red</type> Jeśli uruchomię następujące select t.type + '/' from (values ('Green'),('Blue'),('Red')) as t(type) for xml path('') Otrzymuję ten wynik Green/Blue/Red/ Dlaczego dodanie konkatenacji w zaznaczeniu prowadzi do usunięcia znaczników typu i wyświetlenia …
Mam wyzwalacz tabeli na UPDATE i INSERT, który dodaje wiersz do innej tabeli. Wystarczy dodać wiersz, jeśli jedna z czterech kolumn zostanie zmieniona. Próbowałem użyć JEŻELI AKTUALIZACJI (kol.) Do testowania zmian, ale ma martwy punkt. Testuje tylko, że pojawiła się pewna wartość. Muszę wejść głębiej, muszę porównać stare i nowe …
Mamy więc zapytanie z podzapytaniem, które zawiera literówkę. Brakuje klauzuli FROM. Ale kiedy go uruchomisz, nie wystąpi błąd! Dlaczego!? SELECT 1 ,r.id ,'0D4133BE-C1B5-4141-AFAD-B171A2CCCE56' ,GETDATE() ,1 ,'Y' ,'N' ,oldItem.can_view ,oldItem.can_update FROM Role r JOIN RoleObject oldReport ON r.customer_id = oldReport.customer_id JOIN RoleItem oldItem ON oldReport.id = oldItem.role_object_id AND r.id = oldItem.role_id …
Piszę niestandardowy parser JSON w języku T-SQL † . Na potrzeby mojego parsera używam PATINDEXfunkcji, która oblicza pozycję tokena na podstawie listy tokenów. Wszystkie tokeny w moim przypadku są pojedynczymi postaciami i obejmują one: {} []:, Zwykle, gdy muszę znaleźć (pierwszą) pozycję dowolnego z kilku podanych znaków, używam PATINDEXfunkcji w …
Wewnątrz procedury składowanej mam następujące elementy: (serwer SQL 2008) SET TRANSACTION ISOLATION LEVEL SERIALIZABLE BEGIN TRANSACTION getStuff BEGIN TRY /* some selects, updates, etc, etc. */ .... COMMIT TRANSACTION getStuff END TRY BEGIN CATCH ... END CATCH Ponieważ jest to oparte na transakcjach, myślałem, że reszta połączeń z bazą danych …
Muszę rozwiązać problem, który mam, i potrzebuję pomocy w zrozumieniu, jak działa sp_msforeachdb, aby rozwiązać mój problem. Za każdym razem, gdy uruchamiam sp_msforeachdb, pojawia się błąd Msg 102, Level 15, State 1, Incorrect syntax near '61' Przykład mojego kodu jest następujący: EXEC SP_msforeachdb 'SELECT ''?'' AS Database FROM ?.sys.objects WHERE …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.