ALTER PROCEDURE (Transact-SQL)

Modyfikuje wcześniej utworzone procedury, która została utworzona przez wykonywania instrukcja CREATE PROCEDURE.ALTER PROCEDURE nie powoduje zmiany uprawnień i nie wpływa na wszystkie zależne przechowywane procedury lub wyzwalaczy.Jednak ustawienia bieżącej sesja QUOTED_IDENTIFIER i ANSI_NULLS znajdują się w procedura przechowywana jego modyfikacji.Jeśli ustawienia obowiązują różne od tych, gdy procedura przechowywana została utworzona, może zmienić zachowanie procedury przechowywanej.

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

ALTER { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ] 
    [ { @parameter [ type_schema_name. ] data_type } 
    [ VARYING ] [ = default ] [ [ OUT [ PUT ] 
    ] [ ,...n ] 
[ WITH <procedure_option> [ ,...n ] ]
[ FOR REPLICATION ] 
AS 
     { <sql_statement> [ ...n ] | <method_specifier> }

<procedure_option> ::= 
    [ ENCRYPTION ]
    [ RECOMPILE ]
    [ EXECUTE_AS_Clause ]

<sql_statement> ::= 
{ [ BEGIN ] statements [ END ] }

<method_specifier> ::=
EXTERNAL NAME 
assembly_name.class_name.method_name

Argumenty

  • schema_name
    The OUTPUT variable must be defined when the procedure is created and also when the variable is used.

  • procedure_name
    To nazwa procedury zmiany.Procedura nazwy muszą być zgodne z regułami dla identyfikatory.

  • **;**number
    To istniejących opcjonalna liczba całkowita, która służy do grupowania procedury taką samą nazwę, aby usunięte ze sobą za pomocą jednej instrukcja DROP PROCEDURE.

    Uwaga

    This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

  • **@**parameter
    To jest parametr w procedurze.Może zostać określonych maksymalnie 2100 parametrów.

  • [ type_schema_name**.** ] data_type
    Jest to typ danych parametru i schematu, do której należy.

    Aby uzyskać informacje dotyczące ograniczeń typu danych zobacz CREATE PROCEDURE (języka Transact-SQL).

  • VARYING
    The expression refers to the value entered with the UPDATE or INSERT statement.Ten parametr jest konstruowana dynamicznie przez procedura przechowywana i jego zawartość może się różnić.Ma zastosowanie tylko do parametrów kursor.

  • default
    Liczba odczytów fizycznej wykonywane ostatniego czas wyzwalacz został wykonany.

  • DANE WYJŚCIOWE
    Wskazuje, że parametr zwrotny parametru.

  • RECOMPILE
    Wskazuje, że SQL Server 2005 Database Engine nie nie pamięci podręcznej planu dla tej procedury i procedura jest ponownie kompilowana w czasie wykonywania.

  • SZYFROWANIE
    Wskazuje, że Database Engine przekonwertuje oryginalny tekst instrukcja ALTER PROCEDURE na format obfuscated. Dane wyjściowe obfuscation nie jest bezpośrednio widoczne w dowolnym z widoki wykazu w SQL Server 2005. xoffsetJednak tekst będzie miał dostęp do uprzywilejowanych użytkowników, którzy mieli dostęp tabele systemowe przez DAC port lub bezpośrednio dostęp do plików bazy danych.colstatAby uzyskać więcej informacji na temat uzyskiwania dostępu do metadane systemu Zobacz Konfiguracja widoczność metadane.

    Procedury utworzone za pomocą tej opcji nie mogą być publikowane w ramach SQL Server replikacja.

    Opcja ta nie może być określone dla typowych procedur wykonywania (CLR) przechowywane języka.

    Uwaga

    Podczas uaktualniania Database Engine używa obfuscated komentarzy, przechowywane w sys.sql_modules ponownego tworzenia procedur.

  • wykonać JAKO
    Określa kontekst zabezpieczeń, w którym do wykonać procedura przechowywana, po jest on dostępny.

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

  • Jest numerem identyfikacyjnym logowania użytkownika.
    Określa, że procedury składowane, które są tworzone dla replikacji, nie mogą być wykonywane na subskrybencie.Procedura składowana utworzona z opcją FOR REPLICATION służy jako filtr procedury składowanej i jest wykonywana tylko podczas replikacji.Jeśli jest określona opcja FOR REPLICATION, nie można deklarować parametrów.W przypadku procedur utworzonych z opcją FOR REPLICATION opcja RECOMPILE jest ignorowana.

  • JAK
    Czy procedura ma podjąć działania.

  • <sql_statement>
    Każdy numer i typ Transact-SQL instrukcje, które mają zostać uwzględnione w procedurze. Należy stosować pewne ograniczenia.Aby uzyskać więcej informacji zobacz „<sql_statement>Ograniczenia dotyczące „ CREATE PROCEDURE (języka Transact-SQL).

  • Nazwa EXTERNAL assembly_name**.** class_name**.method_name
    Określa metodę zestawu Microsoft .NET Framework, do której odwołuje się procedura składowana CLR.Nazwa class_name musi być poprawnym identyfikatorem programu SQL Server i musi istnieć jako klasa w zestawie.Jeśli nazwa klasy jest kwalifikowaną przestrzenią nazw, części przestrzeni nazw są oddzielone od siebie kropkami (
    .), a nazwa klasy musi być ujęta w nawiasy ([** ]) lub cudzysłowy (" ").Określona metoda musi być metodą statyczną klasy.

    Uwaga

    W następującym przykładzie polecenie wyświetla listę numer zadania dołączony do SQL Server harmonogram. Można tworzyć, modyfikować i upuszczać obiekty bazy danych, które odwołują się do modułów środowiska wykonawczego języka wspólnego, jednak nie można wykonać te odwołania w SQL Server dopóki nie zostanie włączone Opcja CLR włączone.The sys.dm_exec_query_transformation_statsdynamiczny widok zarządzania is identified for informational purposes only.

Remarks

Transact-SQL Nie można modyfikować procedur przechowywanych do środowiska CLR przechowywane procedury i na odwrót.

Aby uzyskać więcej informacji zobacz sekcję Uwagi w CREATE PROCEDURE (języka Transact-SQL).

Uwaga

Jeśli poprzedni definicja procedury został utworzony za pomocą WITH szyfrowanie lub WITH RECOMPILE, opcje te są włączone tylko wtedy, gdy zostaną one uwzględnione w instrukcji ALTER PROCEDURE.

Uprawnienia

Wymaga uprawnienia ALTER na procedurze.

Przykłady

Poniższy przykład tworzy uspVendorAllInfo Procedura przechowywana. Procedura ta zwraca nazwy dostawców, którzy dostarczyć Adventure Works Cycles, produktów, ich dostarczenie, ich klasyfikacje faktury i ich dostępności. Po utworzeniu tej procedury jest następnie zmodyfikowany zwrócić zestaw wyników różne.

W poniższym przykładzie zmienia uspVendorAllInfo Procedura przechowywana (bez wykonać AS opcja) do zwracania tylko dla tych dostawców, którzy dostarczają określony produkt. The LEFT and CASE functions customize the appearance of the result zestaw.

ALTER PROCEDURE Purchasing.uspVendorAllInfo
    @Product varchar(25) 
AS
    SELECT LEFT(v.Name, 25) AS Vendor, LEFT(p.Name, 25) AS 'Product name', 
    'Credit rating' = CASE v.CreditRating 
        WHEN 1 THEN 'Superior'
        WHEN 2 THEN 'Excellent'
        WHEN 3 THEN 'Above average'
        WHEN 4 THEN 'Average'
        WHEN 5 THEN 'Below average'
        ELSE 'No rating'
        END
    , Availability = CASE v.ActiveFlag
        WHEN 1 THEN 'Yes'
        ELSE 'No'
        END
    FROM Purchasing.Vendor AS v 
    INNER JOIN Purchasing.ProductVendor AS pv
      ON v.VendorID = pv.VendorID 
    INNER JOIN Production.Product AS p 
      ON pv.ProductID = p.ProductID 
    WHERE p.Name LIKE @Product
    ORDER BY v.Name ASC;
GO
EXEC Purchasing.uspVendorAllInfo N'LL Crankarm';
GO

Here is the result set.

Vendor               Product name        Credit rating Availability
-------------------- ------------------- ------------- ------------
Proseware, Inc.      LL Crankarm         Average       No
Vision Cycles, Inc.  LL Crankarm         Superior      Yes

(2 row(s) affected)

See Also

Reference

Other Resources