Udostępnij za pomocą


FUNKCJA ALTERA (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Zmienia istniejącą funkcję Transact-SQL lub CLR, która została wcześniej utworzona przez wykonanie instrukcji bez zmieniania CREATE FUNCTION uprawnień i bez wpływu na funkcje zależne, procedury składowane lub wyzwalacze.

Tip

Można określić CREATE OR ALTER FUNCTION , aby utworzyć nową funkcję, jeśli ta funkcja nie istnieje według tej nazwy lub zmienić istniejącą funkcję w jednej instrukcji.

Transact-SQL konwencje składni

Syntax

-- Transact-SQL Scalar Function Syntax    
ALTER FUNCTION [ schema_name. ] function_name   
( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type   
    [ = default ] }   
    [ ,...n ]  
  ]  
)  
RETURNS return_data_type  
    [ WITH <function_option> [ ,...n ] ]  
    [ AS ]  
    BEGIN   
        function_body   
        RETURN scalar_expression  
    END  
[ ; ]
-- Transact-SQL Inline Table-Valued Function Syntax
ALTER FUNCTION [ schema_name. ] function_name   
( [ { @parameter_name [ AS ] [ type_schema_name. ] parameter_data_type   
    [ = default ] }   
    [ ,...n ]  
  ]  
)  
RETURNS TABLE  
    [ WITH <function_option> [ ,...n ] ]  
    [ AS ]  
    RETURN [ ( ] select_stmt [ ) ]  
[ ; ]  
-- Transact-SQL Multistatement Table-valued Function Syntax
ALTER FUNCTION [ schema_name. ] function_name   
( [ { @parameter_name [ AS ] [ type_schema_name. ] parameter_data_type   
    [ = default ] }   
    [ ,...n ]  
  ]  
)  
RETURNS @return_variable TABLE <table_type_definition>  
    [ WITH <function_option> [ ,...n ] ]  
    [ AS ]  
    BEGIN   
        function_body   
        RETURN  
    END  
[ ; ]  
-- Transact-SQL Function Clauses   
<function_option>::=   
{  
    [ ENCRYPTION ]  
  | [ SCHEMABINDING ]  
  | [ RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ]  
  | [ EXECUTE_AS_Clause ]  
} 

<table_type_definition>:: =   
( { <column_definition> <column_constraint>   
  | <computed_column_definition> }   
    [ <table_constraint> ] [ ,...n ]  
)   
<column_definition>::=  
{  
    { column_name data_type }  
    [ [ DEFAULT constant_expression ]   
      [ COLLATE collation_name ] | [ ROWGUIDCOL ]  
    ]  
    | [ IDENTITY [ (seed , increment ) ] ]  
    [ <column_constraint> [ ...n ] ]   
}  

<column_constraint>::=   
{  
    [ NULL | NOT NULL ]   
    { PRIMARY KEY | UNIQUE }  
      [ CLUSTERED | NONCLUSTERED ]   
        [ WITH FILLFACTOR = fillfactor   
        | WITH ( < index_option > [ , ...n ] )  
      [ ON { filegroup | "default" } ]  
  | [ CHECK ( logical_expression ) ] [ ,...n ]  
}  

<computed_column_definition>::=  
column_name AS computed_column_expression   

<table_constraint>::=  
{   
    { PRIMARY KEY | UNIQUE }  
      [ CLUSTERED | NONCLUSTERED ]   
      ( column_name [ ASC | DESC ] [ ,...n ] )  
        [ WITH FILLFACTOR = fillfactor   
        | WITH ( <index_option> [ , ...n ] )  
  | [ CHECK ( logical_expression ) ] [ ,...n ]  
}  

<index_option>::=  
{   
    PAD_INDEX = { ON | OFF }   
  | FILLFACTOR = fillfactor   
  | IGNORE_DUP_KEY = { ON | OFF }  
  | STATISTICS_NORECOMPUTE = { ON | OFF }   
  | ALLOW_ROW_LOCKS = { ON | OFF }  
  | ALLOW_PAGE_LOCKS ={ ON | OFF }   
}  
-- CLR Scalar and Table-Valued Function Syntax
ALTER FUNCTION [ schema_name. ] function_name   
( { @parameter_name [AS] [ type_schema_name. ] parameter_data_type   
    [ = default ] }   
    [ ,...n ]  
)  
RETURNS { return_data_type | TABLE <clr_table_type_definition> }  
    [ WITH <clr_function_option> [ ,...n ] ]  
    [ AS ] EXTERNAL NAME <method_specifier>  
[ ; ]  
-- CLR Function Clauses
<method_specifier>::=  
    assembly_name.class_name.method_name  

<clr_function_option>::=  
}  
    [ RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ]  
  | [ EXECUTE_AS_Clause ]  
}  

<clr_table_type_definition>::=   
( { column_name data_type } [ ,...n ] )  
-- Syntax for In-Memory OLTP: Natively compiled, scalar user-defined function  
ALTER FUNCTION [ schema_name. ] function_name    
 ( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type   
    [ NULL | NOT NULL ] [ = default ] }   
    [ ,...n ]   
  ]   
)   
RETURNS return_data_type  
    [ WITH <function_option> [ ,...n ] ]   
    [ AS ]   
    BEGIN ATOMIC WITH (set_option [ ,... n ])  
        function_body   
        RETURN scalar_expression  
    END  

<function_option>::=   
{ |  NATIVE_COMPILATION   
  |  SCHEMABINDING   
  | [ EXECUTE_AS_Clause ]   
  | [ RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT ]   
}  

Arguments

schema_name

Nazwa schematu, do którego należy funkcja zdefiniowana przez użytkownika.

function_name

Funkcja zdefiniowana przez użytkownika ma zostać zmieniona.

Note

Nawiasy są wymagane po nazwie funkcji, nawet jeśli parametr nie jest określony.

@ parameter_name

Parametr w funkcji zdefiniowanej przez użytkownika. Można zadeklarować jeden lub więcej parametrów.

Funkcja może mieć maksymalnie 2 100 parametrów. Wartość każdego zadeklarowanego parametru musi być podana przez użytkownika podczas wykonywania funkcji, chyba że zdefiniowano wartość domyślną dla parametru.

Określ nazwę parametru przy użyciu znaku (@) jako pierwszego znaku. Nazwa parametru musi być zgodna z regułami identyfikatorów. Parametry są lokalne dla funkcji; Te same nazwy parametrów mogą być używane w innych funkcjach. Parametry mogą mieć miejsce tylko stałych; Nie można ich używać zamiast nazw tabel, nazw kolumn ani nazw innych obiektów bazy danych.

Note

ANSI_WARNINGS nie jest honorowany podczas przekazywania parametrów w procedurze składowanej, funkcji zdefiniowanej przez użytkownika lub podczas deklarowania i ustawiania zmiennych w instrukcji wsadowej. Jeśli na przykład zmienna jest zdefiniowana jako char(3), a następnie ustawiona na wartość większą niż trzy znaki, dane zostaną obcięte do zdefiniowanego rozmiaru, a instrukcja INSERT lub UPDATE zakończy się powodzeniem.

[ type_schema_name. ] parameter_data_type

Jest typem danych parametru i opcjonalnie schematem, do którego należy. W przypadku funkcji Transact-SQL dozwolone są wszystkie typy danych, w tym typy zdefiniowane przez użytkownika CLR, z wyjątkiem typu danych znacznika czasu . W przypadku funkcji CLR wszystkie typy danych, w tym typy zdefiniowane przez użytkownika CLR, są dozwolone z wyjątkiem typów danych tekstowych, ntekstu, obrazu i znacznika czasu . Nie można określić parametru typu kursora i tabeli jako typu danych parametrów w funkcjach Transact-SQL lub CLR.

Jeśli nie określono type_schema_name , aparat bazy danych programu SQL Server wyszukuje parameter_data_type w następującej kolejności:

  • Schemat zawierający nazwy typów danych systemu SQL Server.

  • Domyślny schemat bieżącego użytkownika w bieżącej bazie danych.

  • Schemat dbo w bieżącej bazie danych.

[ = wartość domyślna ] **

Wartość domyślna parametru. Jeśli zdefiniowano wartość domyślną , funkcja może zostać wykonana bez określania wartości dla tego parametru.

Note

Wartości parametrów domyślnych można określić dla funkcji CLR z wyjątkiem typów danych varchar(max) i varbinary(max).

Jeśli parametr funkcji ma wartość domyślną, podczas wywoływania funkcji należy określić słowo kluczowe DEFAULT w celu pobrania wartości domyślnej. To zachowanie różni się od używania parametrów z wartościami domyślnymi w procedurach składowanych, w których pominięcie parametru również implikuje wartość domyślną.

return_data_type

Wartość zwracana przez skalarną funkcję zdefiniowaną przez użytkownika. W przypadku funkcji Transact-SQL dozwolone są wszystkie typy danych, w tym typy zdefiniowane przez użytkownika CLR, z wyjątkiem typu danych znacznika czasu . W przypadku funkcji CLR wszystkie typy danych, w tym typy zdefiniowane przez użytkownika CLR, są dozwolone z wyjątkiem typów danych tekstowych, ntekstu, obrazu i znacznika czasu . Nie można określić typu kursora i tabeli bezserwerowej jako zwracanego typu danych w funkcjach Transact-SQL lub CLR.

function_body

Określa, że szereg instrukcji Transact-SQL, które razem nie generują efektu bocznego, takiego jak modyfikowanie tabeli, definiują wartość funkcji. function_body jest używana tylko w funkcjach skalarnych i funkcjach wielostanowych tabel.

W funkcjach skalarnych function_body jest serią Transact-SQL instrukcji, które razem dają w wyniku wartość skalarną.

W funkcjach wielostanowych wartości tabeli function_body jest serią instrukcji Transact-SQL, które wypełniają zmienną zwracaną TABLE.

scalar_expression

Określa, że funkcja skalarna zwraca wartość skalarną.

TABLE

Określa, że zwracana wartość funkcji table-valued jest tabelą. Tylko stałe i @local_variables mogą być przekazywane do funkcji wartości tabeli.

W wbudowanych funkcjach wartości tabeli zwracana wartość TABLE jest definiowana za pomocą pojedynczej instrukcji SELECT. Funkcje wbudowane nie mają skojarzonych zmiennych zwracanych.

W funkcjach @ wielostanowych wartości tabeli return_variable jest zmienną TABLE używaną do przechowywania i gromadzenia wierszy, które powinny być zwracane jako wartość funkcji. @ return_variable można określić tylko dla funkcji Transact-SQL, a nie dla funkcji CLR.

select-stmt

Pojedyncza instrukcja SELECT, która definiuje wartość zwracaną funkcji wbudowanej tabeli.

NAZWA <ZEWNĘTRZNA method_specifier>_name.method_name

Dotyczy: SQL Server 2008 (10.0.x) i nowsze wersje.

Określa metodę zestawu do powiązania z funkcją. assembly_name musi odpowiadać istniejącemu zestawowi w programie SQL Server w bieżącej bazie danych z widocznością. class_name musi być prawidłowym identyfikatorem programu SQL Server i musi istnieć jako klasa w zestawie. Jeśli klasa ma kwalifikowaną nazwę przestrzeni nazw, która używa kropki (.) do oddzielania części przestrzeni nazw, nazwa klasy musi być rozdzielana nawiasami kwadratowymi ([]) lub cudzysłowami ("". method_name musi być prawidłowym identyfikatorem programu SQL Server i musi istnieć jako metoda statyczna w określonej klasie.

Note

Domyślnie program SQL Server nie może wykonać kodu CLR. Można tworzyć, modyfikować i usuwać obiekty bazy danych odwołujące się do modułów środowiska uruchomieniowego języka wspólnego; nie można jednak wykonać tych odwołań w programie SQL Server do momentu włączenia opcji clr enabled. Aby włączyć tę opcję, użyj sp_configure.

Note

Ta opcja nie jest dostępna w zawartej bazie danych.

< > ( { <column_definition column_constraint>| <><> computed_column_definition } [ <table_constraint> ] [ ,... n ] )

Definiuje typ danych tabeli dla funkcji Transact-SQL. Deklaracja tabeli zawiera definicje kolumn i ograniczenia kolumn lub tabel.

< > clr_table_type_definition ( { column_namedata_type } [ ,... n ] )

Dotyczy: SQL Server 2008 (10.0.x) i nowsze, SQL Database (wersja zapoznawcza w niektórych regionach).

Definiuje typy danych tabeli dla funkcji CLR. Deklaracja tabeli zawiera tylko nazwy kolumn i typy danych.

NULL|NIE NULL

Obsługiwane tylko w przypadku natywnie skompilowanych, skalarnych funkcji zdefiniowanych przez użytkownika. Aby uzyskać więcej informacji, zobacz Scalar User-Defined Functions for In-Memory OLTP.

NATIVE_COMPILATION

Wskazuje, czy funkcja zdefiniowana przez użytkownika jest kompilowana natywnie. Ten argument jest wymagany w przypadku natywnie skompilowanych, skalarnych funkcji zdefiniowanych przez użytkownika.

Argument NATIVE_COMPILATION jest wymagany podczas zmiany funkcji i może być używany tylko wtedy, gdy funkcja została utworzona za pomocą argumentu NATIVE_COMPILATION.

ROZPOCZNIJ ATOMOWY OD

Obsługiwane tylko dla natywnie skompilowanych, skalarnych funkcji zdefiniowanych przez użytkownika i jest wymagane. Aby uzyskać więcej informacji, zobacz Bloki atomowe w procedurach natywnych.

SCHEMABINDING

Argument SCHEMABINDING jest wymagany dla natywnie skompilowanych, skalarnych funkcji zdefiniowanych przez użytkownika.

< >function_option::= i <clr_function_option>::=

Określa, że funkcja będzie mieć co najmniej jedną z następujących opcji.

ENCRYPTION

Dotyczy: SQL Server 2008 (10.0.x) i nowsze wersje.

Wskazuje, że aparat bazy danych szyfruje kolumny widoku wykazu zawierające tekst instrukcji ALTER FUNCTION . Użycie szyfrowania uniemożliwia publikowanie funkcji w ramach replikacji programu SQL Server. Nie można określić szyfrowania dla funkcji CLR.

SCHEMABINDING

Określa, że funkcja jest powiązana z obiektami bazy danych, do których się odwołuje. Po określeniu metody SCHEMABINDING nie można modyfikować obiektów podstawowych w sposób, który będzie miał wpływ na definicję funkcji. Sama definicja funkcji musi najpierw zostać zmodyfikowana lub usunięta, aby usunąć zależności od obiektu, który ma zostać zmodyfikowany.

Powiązanie funkcji z obiektami, do których się odwołuje, jest usuwane tylko wtedy, gdy występuje jedna z następujących akcji:

  • Funkcja zostanie porzucona.

  • Funkcja jest modyfikowana przy użyciu instrukcji ALTER z nieokreśloną opcją SCHEMABINDING.

Aby zapoznać się z listą warunków, które muszą zostać spełnione, zanim będzie można powiązać funkcję, zobacz CREATE FUNCTION (Transact-SQL).

ZWRACA WARTOŚĆ NULL W PRZYPADKU DANYCH WEJŚCIOWYCH O WARTOŚCI NULL | WYWOŁYWANE PRZY DANYCH WEJŚCIOWYCH NULL

Określa OnNULLCall atrybut funkcji wartości skalarnej. Jeśli nie zostanie określony, CALLED ON NULL INPUT jest domyślnie implikowany. Oznacza to, że treść funkcji jest wykonywana nawet wtedy, gdy NULL jest przekazywana jako argument.

Jeśli RETURNS NULL ON NULL INPUT jest określony w funkcji CLR, wskazuje, że program SQL Server może zwrócić NULL , gdy którykolwiek z odbieranych argumentów ma wartość NULL, bez wywoływania treści funkcji. Jeśli metoda określona w <method_specifier> ma już atrybut niestandardowy wskazujący RETURNS NULL ON NULL INPUT, ale ALTER FUNCTION instrukcja wskazuje CALLED ON NULL INPUT, ALTER FUNCTION instrukcja ma pierwszeństwo. Nie można określić atrybutu OnNULLCall dla funkcji wartości tabeli CLR.

KLAUZULA EXECUTE AS

Określa kontekst zabezpieczeń, w którym jest wykonywana funkcja zdefiniowana przez użytkownika. W związku z tym można kontrolować, które konto użytkownika jest używane przez program SQL Server do sprawdzania poprawności uprawnień do wszystkich obiektów bazy danych, do których odwołuje się funkcja.

Note

Nie można określić funkcji EXECUTE AS dla wbudowanych funkcji zdefiniowanych przez użytkownika.

Aby uzyskać więcej informacji, zobacz Klauzula EXECUTE AS (Transact-SQL).

< >column_definition ::=

Definiuje typ danych tabeli. Deklaracja tabeli zawiera definicje kolumn i ograniczenia. W przypadku funkcji CLR można określić tylko column_name i data_type .

column_name

Nazwa kolumny w tabeli. Nazwy kolumn muszą być zgodne z regułami dotyczącymi identyfikatorów i muszą być unikatowe w tabeli. column_name może składać się z od 1 do 128 znaków.

data_type

Określa typ danych kolumny. W przypadku funkcji Transact-SQL dozwolone są wszystkie typy danych, w tym typy zdefiniowane przez użytkownika CLR, z wyjątkiem znacznika czasu. W przypadku funkcji CLR wszystkie typy danych, w tym typy zdefiniowane przez użytkownika CLR, są dozwolone z wyjątkiem tekstu, ntextu, obrazu, char, varchar, varchar(max)i znacznika czasu. Nie można określić kursora typu innego niż kolumnowy jako typ danych kolumny w funkcjach Transact-SQL lub CLR.

DOMYŚLNY constant_expression

Określa wartość podaną dla kolumny, gdy wartość nie jest jawnie podana podczas wstawiania. constant_expression jest stałą, NULLlub wartością funkcji systemowej. Definicje DOMYŚLNE można zastosować do dowolnej kolumny, z wyjątkiem tych, które mają właściwość IDENTITY. Nie można określić wartości DEFAULT dla funkcji wartości tabeli CLR.

SORTOWANIE collation_name

Określa sortowanie dla kolumny. Jeśli nie zostanie określona, kolumnie zostanie przypisane domyślne sortowanie bazy danych. Nazwa sortowania może być nazwą sortowania systemu Windows lub nazwą sortowania SQL. Aby uzyskać listę i więcej informacji, zobacz Nazwa sortowania systemu Windows i Nazwa sortowania programu SQL Server.

Klauzulę COLLATE można użyć do zmiany sortowania tylko kolumn typów danych char, varchar, nchar i nvarchar .

Nie można określić funkcji COLLATE dla funkcji o wartości tabeli CLR.

ROWGUIDCOL

Wskazuje, że nowa kolumna jest globalną kolumną unikatowego identyfikatora wiersza. Jako kolumnę ROWGUIDCOL można wyznaczyć tylko jedną unikatową kolumnę na tabelę. Właściwość ROWGUIDCOL można przypisać tylko do kolumny uniqueidentifier .

Właściwość ROWGUIDCOL nie wymusza unikatowości wartości przechowywanych w kolumnie. Nie generuje również automatycznie wartości dla nowych wierszy wstawionych do tabeli. Aby wygenerować unikatowe wartości dla każdej kolumny NEWID , użyj funkcji on INSERT statements. Można określić wartość domyślną; NEWID nie można jednak określić jako wartości domyślnej.

IDENTITY

Wskazuje, że nowa kolumna jest kolumną tożsamości. Po dodaniu nowego wiersza do tabeli program SQL Server udostępnia unikatową, przyrostową wartość kolumny. Kolumny tożsamości są zwykle używane razem z ograniczeniami KLUCZA PODSTAWOWEgo, aby służyć jako unikatowy identyfikator wiersza dla tabeli. Właściwość IDENTITY można przypisać do kolumn tinyint, smallint, int, bigint, decimal(p,0) lub numerycznych (p,0). Dla tabeli można utworzyć tylko jedną kolumnę tożsamości. Nie można używać powiązanych wartości domyślnych i ograniczeń DOMYŚLNYch z kolumną tożsamości. Należy określić zarówno ziarno , jak i przyrost lub żadne. Jeśli żadna z nich nie zostanie określona, wartość domyślna to (1,1).

Nie można określić tożsamości dla funkcji wartości tabeli CLR.

seed

Wartość całkowita, która ma zostać przypisana do pierwszego wiersza w tabeli.

increment

Wartość całkowita, która ma zostać dodana do wartości początkowej dla kolejnych wierszy w tabeli.

< >column_constraint ::= i < table_constraint>::=

Definiuje ograniczenie dla określonej kolumny lub tabeli. W przypadku funkcji CLR jedynym dozwolonym typem ograniczenia jest wartość NULL. Nazwane ograniczenia są niedozwolone.

NULL | NIE NULL

Określa, czy w kolumnie są dozwolone wartości null. NULL nie jest ściśle ograniczeniem, ale można go określić tak jak NOT NULL. NOT NULL nie można określić dla funkcji wartości tabeli CLR.

KLUCZ PODSTAWOWY

Ograniczenie, które wymusza integralność jednostki dla określonej kolumny za pomocą unikatowego indeksu. W funkcjach zdefiniowanych przez użytkownika w tabeli ograniczenie KLUCZ PODSTAWOWY można utworzyć tylko dla jednej kolumny na tabelę. Nie można określić klucza PODSTAWOWEgo dla funkcji wartości tabeli CLR.

UNIQUE

Ograniczenie zapewniające integralność jednostki dla określonej kolumny lub kolumn za pośrednictwem unikatowego indeksu. Tabela może mieć wiele unikatowych ograniczeń. Nie można określić unikatowego elementu dla funkcji wartości tabeli CLR.

KLASTROWANE | NIEKLASTROWANE

Wskazuje, że indeks klastrowany lub nieklastrowany jest tworzony dla klucza PODSTAWOWEgo lub unikatowego ograniczenia. Ograniczenia KLUCZA PODSTAWOWEgo korzystają z klastra, a OGRANICZENIA UNIKATOWE używają WARTOŚCI NONCLUSTERED.

KLASTERED można określić tylko dla jednego ograniczenia. Jeśli określono parametr CLUSTERED dla ograniczenia UNIKATOWEGO, a ograniczenie KLUCZA PODSTAWOWEgo jest również określone, KLUCZ PODSTAWOWY używa WARTOŚCI NONCLUSTERED.

Nie można określić klasTERED i NONCLUSTERED dla funkcji o wartości tabeli CLR.

CHECK

Ograniczenie wymuszające integralność domeny przez ograniczenie możliwych wartości, które można wprowadzić w kolumnie lub kolumnach. Nie można określić ograniczeń CHECK dla funkcji wartości tabeli CLR.

logical_expression

Wyrażenie logiczne zwracające wartość TRUE lub FALSE.

< >computed_column_definition::=

Określa kolumnę obliczaną. Aby uzyskać więcej informacji na temat kolumn obliczeniowych, zobacz CREATE TABLE (Transact-SQL) .

column_name

Nazwa kolumny obliczanej.

computed_column_expression

Wyrażenie definiujące wartość obliczonej kolumny.

< >index_option::=

Określa opcje indeksu dla KLUCZA PODSTAWOWEgo lub INDEKSU UNIKATOWEGO. Aby uzyskać więcej informacji na temat opcji indeksu, zobacz TWORZENIE INDEKSU (Transact-SQL).

PAD_INDEX = { ON | WYŁ. }

Określa dopełnienie indeksu. Wartość domyślna to WYŁĄCZONE.

FILLFACTOR = wypełnienie

Określa wartość procentową wskazującą, jak bardzo Aparat baz danych powinien zapełnić poziom liścia każdej strony indeksu podczas tworzenia indeksu lub zmieniania go. fillfactor musi być wartością całkowitą z zakresu od 1 do 100. Wartość domyślna to 0.

IGNORE_DUP_KEY = { ON | WYŁ. }

Określa odpowiedź na błąd, gdy operacja wstawiania próbuje wstawić zduplikowane wartości klucza do unikatowego indeksu. Opcja IGNORE_DUP_KEY dotyczy tylko operacji wstawiania po utworzeniu lub odbudowaniu indeksu. Wartość domyślna to WYŁĄCZONE.

STATISTICS_NORECOMPUTE = { ON | WYŁ. }

Określa, czy statystyki rozkładu są obliczane ponownie. Wartość domyślna to WYŁĄCZONE.

ALLOW_ROW_LOCKS = { ON | WYŁ. }

Określa, czy blokady wierszy są dozwolone. Wartość domyślna to WŁĄCZONE.

ALLOW_PAGE_LOCKS = { ON | WYŁ. }

Określa, czy blokady strony są dozwolone. Wartość domyślna to WŁĄCZONE.

Remarks

Funkcji ALTER nie można użyć do zmiany funkcji wartości skalarnej na funkcję wartości tabeli lub odwrotnie. Ponadto funkcja ALTER nie może służyć do zmiany funkcji wbudowanej na funkcję wielostanową lub odwrotnie. Funkcji ALTER nie można użyć do zmiany funkcji Transact-SQL na funkcję CLR lub odwrotnie.

Następujące instrukcje usługi Service Broker nie mogą być uwzględnione w definicji funkcji zdefiniowanej przez użytkownika Transact-SQL:

  • BEGIN DIALOG CONVERSATION
  • END CONVERSATION
  • GET CONVERSATION GROUP
  • MOVE CONVERSATION
  • RECEIVE
  • SEND

Permissions

Wymaga uprawnienia ALTER dla funkcji lub schematu. Jeśli funkcja określa typ zdefiniowany przez użytkownika, wymaga uprawnienia EXECUTE dla typu.

W usłudze Microsoft Fabric członkowie ról administratora obszaru roboczego sieci szkieletowej, członka i współautora mogą tworzyć funkcje.