Wszystkie wersje Microsoft SQL Server (nie MySQL). Dodaj również tag specyficzny dla wersji, np. Sql-server-2016, ponieważ często jest on odpowiedni dla pytania.
O co tu nie chodzi: To nie jest pytanie o zapytania typu catch-all, które akceptują dane wejściowe użytkownika lub używają zmiennych. Dotyczy to wyłącznie zapytań, ISNULL()w których WHEREklauzula została użyta w celu zastąpienia NULLwartości wartością kanaryjską w celu porównania z predykatem, oraz różnych sposobów przepisania tych zapytań, aby były SARGable …
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 [¯\_(ツ)_/¯] …
Mam proces, który pobiera kilka rekordów (1000) i działa na nich, a kiedy skończę, muszę oznaczyć ich dużą liczbę jako przetworzonych. Mogę to wskazać za pomocą dużej listy identyfikatorów. Staram się unikać wzorca „aktualizacji w pętli”, dlatego chciałbym znaleźć bardziej skuteczny sposób na przesłanie tego worka identyfikatorów do przechowywanego proc. …
Mam funkcję zdefiniowaną przez użytkownika: create function ut_FooFunc(@fooID bigint, @anotherParam tinyint) returns @tbl Table (Field1 int, Field2 varchar(100)) as begin -- blah blah end Teraz chcę dołączyć do tego na innym stole, na przykład: select f.ID, f.Desc, u.Field1, u.Field2 from Foo f join ut_FooFunc(f.ID, 1) u -- doesn't work where …
Powszechnie wiadomo, że SCHEMABINDINGfunkcja może uniknąć niepotrzebnego buforowania w planach aktualizacji: Jeśli używasz prostych UDF T-SQL, które nie dotykają żadnych tabel (tj. Nie mają dostępu do danych), upewnij się, że określiłeś tę SCHEMABINDINGopcję podczas tworzenia UDF. Spowoduje to związanie schematu UDF i zapewni, że optymalizator zapytań nie wygeneruje niepotrzebnych operatorów …
Mam zoo z 20 milionami zwierząt, które śledzę w mojej bazie danych SQL Server 2005. Około 1% z nich jest czarnych, a około 1% z nich to łabędzie. Chciałem uzyskać szczegółowe informacje na temat wszystkich czarnych łabędzi, więc nie chcąc zalać strony wyników, zrobiłem: select top 10 * from animal …
I zrozumieć , że nie można mieć ORDER BY w widoku. (Przynajmniej w SQL Server 2012, z którym pracuję) Rozumiem również, że „poprawnym” sposobem sortowania widoku jest umieszczenie ORDER BYwokół SELECTinstrukcji, która wyświetla zapytanie. Ale będąc stosunkowo nowym w praktycznym języku SQL i zastosowaniach widoków, chciałbym zrozumieć, dlaczego tak się …
Moja firma stoi przed decyzją, czy kupić SQL Server 2012 Denali, czy SQL Server 2008 R2 na nowy serwer bazy danych. Szukam obiektywnych powodów, aby wybrać jeden z nich. Nasze wymagania: Edycja standardowa (z powodów finansowych i braku potrzeby funkcji korporacyjnych) Obciążenie OLTP (oznacza to, że nie potrzebujemy nowych funkcji …
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! …
Czytałem wspaniałe artykuły dotyczące buforowania planu SQL Server przez Kimberly Tripp, takie jak ten: http://www.sqlskills.com/blogs/kimberly/plan-cache-and-optimizing-for-adhoc-workloads/ Dlaczego istnieje nawet opcja „optymalizacji pod kątem obciążeń ad hoc”? Czy nie powinno to zawsze być włączone? Niezależnie od tego, czy programiści używają ad-hoc SQL, czy nie, dlaczego nie włączono by tej opcji w każdej …
Przez pomyłkę usunąłem około 2 000 000 rekordów ze zdalnej tabeli SQL Server 2008. Serwer nie przyznaje mi dostępu do plików kopii zapasowych po stronie serwera. Czy jest jakiś sposób na odzyskanie tych zapisów?
Widziałem wiele osób korzystających z funkcji COALESCE zamiast ISNULL. Z wyszukiwarek internetowych dowiedziałem się, że COALESCE jest standardem ANSI, więc mamy tę zaletę, że wiemy, czego się spodziewać podczas jego używania. Jednak ISNULL wydaje się łatwiejszy do odczytania, ponieważ wydaje się bardziej jasne, co robi. Zdaję sobie również sprawę, że …
Biorąc pod uwagę następujące elementy DECLARE @D DATE = '2013-10-13' DECLARE @T TIME(7) = '23:59:59.9999999' Jaki jest najlepszy sposób na połączenie ich w celu uzyskania DATETIME2(7)wyniku o wartości '2013-10-13 23:59:59.9999999'? Niektóre rzeczy, które nie działają, są wymienione poniżej. SELECT @D + @T Data typu argumentu operand jest niepoprawna dla operatora …
O ile mogłem się dowiedzieć, wiele DBMS (np. Mysql, postgres, mssql) używa kombinacji fk i pk tylko w celu ograniczenia zmian danych, ale rzadko są one natywnie używane do automatycznego wybierania kolumn do połączenia (tak jak naturalne łączenie robi z nazwami). Dlaczego? Jeśli już zdefiniowałeś relację między 2 tabelami za …
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.