Wydaje się, że jest to obszar z kilkoma mitami i sprzecznymi poglądami. Jaka jest różnica między zmienną tabeli a lokalną tabelą tymczasową w programie SQL Server?
Często muszę wybrać liczbę wierszy z każdej grupy w zestawie wyników. Na przykład może chciałbym podać najwyższe lub najniższe wartości ostatniego zamówienia „n” na klienta. W bardziej złożonych przypadkach liczba wierszy do wyświetlenia może się różnić w zależności od grupy (zdefiniowanej przez atrybut rekordu grupowania / rodzica). Ta część jest …
Próbuję użyć MERGEinstrukcji, aby wstawić lub usunąć wiersze z tabeli, ale chcę działać tylko na podzestawie tych wierszy. Dokumentacja MERGEzawiera dość mocno sformułowane ostrzeżenie: Ważne jest, aby określić tylko kolumny z tabeli docelowej, które są używane do dopasowywania celów. To znaczy określ kolumny z tabeli docelowej, które są porównywane z …
Muszę obliczyć sumę kroczącą w zakresie dat. Aby to zilustrować, korzystając z przykładowej bazy danych AdventureWorks , następująca hipotetyczna składnia zrobiłaby dokładnie to, czego potrzebuję: SELECT TH.ProductID, TH.TransactionDate, TH.ActualCost, RollingSum45 = SUM(TH.ActualCost) OVER ( PARTITION BY TH.ProductID ORDER BY TH.TransactionDate RANGE BETWEEN INTERVAL 45 DAY PRECEDING AND CURRENT ROW) FROM …
Wszystko to działa: CREATE DATABASE [¯\_(ツ)_/¯]; GO USE [¯\_(ツ)_/¯]; GO CREATE SCHEMA [¯\_(ツ)_/¯]; GO CREATE TABLE [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯] NVARCHAR(20)); GO CREATE UNIQUE CLUSTERED INDEX [¯\_(ツ)_/¯] ON [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯]); GO INSERT INTO [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯]) VALUES (N'[¯\_(ツ)_/¯]'); GO CREATE VIEW [¯\_(ツ)_/¯].[vw_¯\_(ツ)_/¯] AS SELECT [¯\_(ツ)_/¯] FROM [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]; GO CREATE PROC [¯\_(ツ)_/¯].[sp_¯\_(ツ)_/¯] @Shrug NVARCHAR(20) AS SELECT [¯\_(ツ)_/¯] …
Wiele razy muszę pisać coś takiego, gdy mam do czynienia z programem SQL Server. create table #table_name ( column1 int, column2 varchar(200) ... ) insert into #table_name execute some_stored_procedure; Ale utworzenie tabeli, która ma dokładną składnię w wyniku procedury składowanej, jest żmudnym zadaniem. Na przykład wynik sp_helppublication ma 48 kolumn! …
Czy instrukcja SQL Server (w szczególności 2008 lub 2012) CASEocenia wszystkie WHENwarunki, czy też wychodzi, gdy znajdzie WHENklauzulę, która ma wartość true? Jeśli przejdzie przez cały zestaw warunków, czy to oznacza, że ostatni warunek oceniający na prawda zastępuje to, co zrobił pierwszy warunek, który oceniono na prawda? Na przykład: SELECT …
Rozwijam T-SQL od kilku lat i zawsze zagłębiam się dalej, wciąż ucząc się wszystkiego, co mogę, o wszystkich aspektach języka. Niedawno zacząłem pracować w nowej firmie i otrzymałem dziwną sugestię dotyczącą transakcji. Nigdy ich nie używaj. Zamiast tego użyj obejścia, które symuluje transakcję. To pochodzi od naszego DBA, który pracuje …
Musimy zapisać wyniki zapytania SELECT do pliku csv. Jak można to zrobić za pomocą T-SQL w SQL Server 2008 R2? Wiem, że można to zrobić w SSIS, ale z niektórych powodów nie mamy tej opcji. Próbowałem użyć sugerowanego proc w poniższym artykule, ale kiedy uruchamiam proc, SQL narzeka, że nie …
Jakie jest uzasadnienie używania instrukcji GO po każdej instrukcji SQL? Rozumiem, że GO sygnalizuje koniec partii i / lub zezwala na reputację wyciągów, ale jaką korzyść ma przy ich użyciu po każdym wyciągu. Jestem ciekawy, ponieważ wiele dokumentów Microsoft itp. Zaczęło z nich korzystać po każdym stwierdzeniu, a może dopiero …
Jak sugeruje tytuł, potrzebuję pomocy w uzyskaniu bieżącej sumy w języku T-SQL. Problem polega na tym, że suma, którą muszę zrobić, jest sumą liczby: sum(count (distinct (customers))) Powiedz, że gdybym sam wyliczył liczbę, wynik byłby następujący: Day | CountCustomers ---------------------- 5/1 | 1 5/2 | 0 5/3 | 5 Potrzebuję …
Czy jest możliwe, aby parametr Valued Table był używany jako parametr wyjściowy dla procedury składowanej? Oto, co chcę robić w kodzie /*First I create MY type */ CREATE TYPE typ_test AS TABLE ( id int not null ,name varchar(50) not null ,value varchar(50) not null PRIMARY KEY (id) ) GO …
Chcemy wycofać wystąpienie programu SQL Server, w którym nadal znajduje się kilka baz danych. Jak mogę sprawdzić, czy nadal są używane przez użytkowników, czy aplikację internetową? Znalazłem wątek forum, który miał zapytanie T-SQL, które można uruchomić, aby pobrać datę ostatniego zapytania. Wygląda na to, że działa, ale chcę wiedzieć, czy …
Przeanalizujmy te dwa stwierdzenia: IF (CONDITION 1) OR (CONDITION 2) ... IF (CONDITION 3) AND (CONDITION 4) ... Jeśli CONDITION 1tak TRUE, zostanie CONDITION 2sprawdzone? Jeśli CONDITION 3tak FALSE, zostanie CONDITION 4sprawdzone? Co z warunkami na WHERE: czy silnik SQL Server optymalizuje wszystkie warunki w WHEREklauzuli? Czy programiści powinni umieszczać …
Wygląda na to, że szybkość wykonywania T-SQL zależy od opóźnienia połączenia sieciowego z serwerem. Założyłem, że jeśli SQL Server nie ma nic do zgłaszania klientowi, będzie po prostu działał, dopóki nie zostanie wykonane, ale testy pokazują inną historię. create procedure UselessLoop @I int as declare @D datetime = getdate() while …
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.