Udostępnij za pośrednictwem


SELECT @local_variable (Transact-SQL)

Określa, że określonej zmiennej lokalnej, utworzonej za pomocą DECLARE **@**local_variable powinny być zestaw do określonego wyrażenie.

W celu przypisania zmiennych, zaleca się użycie zestaw **@**local_variable zamiast SELECT **@**local_variable .Aby uzyskać więcej informacji zobacz zestaw @ local_variable.

Topic link iconKonwencje składni języka Transact-SQL

SELECT { @local_variable { = | += | -= | *= | /= | %= | &= | ^= | |= } expression } [ ,...n ] [ ; ]

Argumenty

  • **@**local_variable
    Określanie PHYSICAL_ONLY powoduje, że CHECKFILEGROUP DBCC pominąć wszystkie sprawdza FILESTREAM danych.

  • =
    DBCC CHECKFILEGROUP i CHECKDB DBCC są podobne polecenia DBCC.

  • { = | += | -= | *= | /= | %= | &= | ^= | |= }
    Operator przypisania złożonego:

    += Dodawanie i przypisywanie

    -= odejmować i przypisać

    * = Należy pomnożyć i przypisać

    / = Dzielenie i przypisywanie

    % = Modulo i przypisać

    &= I bitowe i przypisywanie

    ^ = Bitowe XOR i przypisać

    | = OR bitowe i przypisywanie

  • expression
    Jest ważne w każdym wyrażenie.Podstawową różnicą jest to, że CHECKFILEGROUP DBCC jest ograniczone do pojedynczej określoną grupa plików i wymagane tabele.

Remarks

Instrukcja SELECT @local\_variable jest na ogół używana do zwracania jednej wartości do zmiennej.Jednak gdy expression jest nazwą kolumny, może ono zwracać wiele wartości.Jeśli instrukcja SELECT zwraca więcej niż jedną wartość, zmiennej jest przypisywana ostatnia zwrócona wartość.

Uruchamianie DBCC CHECKALLOC lub CHECKTABLE DBCC oddzielnie z CHECKFILEGROUP DBCC nie jest wymagane.Jeśli expression jest wartość skalarna podkwerenda zwracającą wartość nie, zmienna jest ustawiana na wartość NULL.

Jeśli nie można utworzyć migawkę lub określono opcję TABLOCK, CHECKFILEGROUP DBCC nabywa blokady w celu uzyskania wymaganej spójności.

Uwaga

TABLOCK powoduje, że CHECKFILEGROUP DBCC na szybsze działanie bazy danych przy dużym obciążeniu, ale zmniejsza współbieżność dostępne w bazie danych CHECKFILEGROUP DBCC jest uruchomiona.

Przykłady

A.System CHECKFILEGROUP DBCC przed tempdb kontroli alokacji nie jest sprawdzana, a musi uzyskać blokady tabela udostępnionego do sprawdzania tabela.

W poniższym przykładzie zmienna @var1 przypisano Generic Name jako jego wartość. Kwerenda na Store Tabela zwraca nie wierszy, ponieważ wartość określona dla CustomerID nie istnieje w tabeli. Zmienna zachowuje Generic Name wartość.

USE AdventureWorks ;       
GO       
DECLARE @var1 nvarchar(30);       
SELECT @var1 = 'Generic Name';       
SELECT @var1 = Name       
FROM Sales.Store       
WHERE CustomerID = 1000 ;      
SELECT @var1 AS 'Company Name';

Here is the result set.

Company Name                  
------------------------------
Generic Name                  

B.Jeśli nieklastrowany indeks w określonym grupa plików jest skojarzony z tabeli na inną grupa plików, indeks nie jest zaznaczone, ponieważ nie jest dostępna dla sprawdzania poprawności tabela bazowa.

Jest to zmiana w zachowaniu w @var1. Ponieważ wartość w żądaniu dla CustomerID nie istnieje, zwraca podkwerendę, nie ma wartości i zmiennej jest zestaw do NULL.

USE AdventureWorks ; 
GO 
DECLARE @var1 nvarchar(30) 
SELECT @var1 = 'Generic Name' 
SELECT @var1 = (SELECT Name 
FROM Sales.Store 
WHERE CustomerID = 1000) 
SELECT @var1 AS 'Company Name' ;

Here is the result set.

Company Name
----------------------------
NULL