Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
Ez a cikk azt ismerteti, hogyan módosíthatja a tárolt eljárásokat az SQL Server Management Studio vagy a Transact-SQL használatával az SQL Serverben.
Limitations
Transact-SQL tárolt eljárások nem módosíthatók CLR-tárolt eljárásokként, és fordítva.
Ha az előző eljárásdefiníció WITH ENCRYPTION vagy WITH RECOMPILEhasználatával lett létrehozva, ezek a beállítások csak akkor lesznek engedélyezve, ha szerepelnek a ALTER PROCEDURE utasításban.
Permissions
Alter PROCEDURE-engedélyt igényel az eljáráshoz.
Az SQL Server Management Studio használata
Eljárás módosítása az SQL Server Management Studióban:
Az Object Explorerben csatlakozzon az adatbázismotor egy példányához, majd bontsa ki a példányt.
Bontsa ki Adatbázisok, bontsa ki azt az adatbázist, amelyhez az eljárás tartozik, majd bontsa ki Programozhatóság.
Bontsa ki Tárolt eljárások, kattintson a jobb gombbal a módosítani kívánt eljárásra, majd válassza a Módosításlehetőséget.
Módosítsa a tárolt eljárás szövegét.
A szintaxis teszteléséhez a Lekérdezés menüben válassza Elemzéslehetőséget.
Az eljárásdefiníció módosításainak mentéséhez a Lekérdezés menüben válassza a Végrehajtáslehetőséget.
A frissített eljárásdefiníció Transact-SQL szkriptként való mentéséhez a Fájl menüben válassza a Mentés máskéntlehetőséget. Fogadja el a fájlnevet, vagy cserélje le egy új névre, majd válassza a Mentéslehetőséget.
Important
Ellenőrizze az összes felhasználói bemenetet. Az ellenőrzés előtt ne fűzz össze felhasználói adatokat. Soha ne hajtson végre páratlan felhasználói bemenetből létrehozott parancsot. A nem ellenőrzött felhasználói bevitel egy SQL-injektálási támadásnaksebezhetővé teszi az adatbázist. További információért lásd: SQL-injektálás.
Használd a Transact-SQL-t
Eljárás módosítása T-SQL-parancsokkal:
Object Explorer-ben csatlakozzon az adatbázismotor egy példányához, majd bontsa ki a példányt.
Nyissa meg Adatbázisok, majd bontsa ki azt az adatbázist, amelyhez az eljárás tartozik. Vagy az eszköztáron válassza ki az adatbázist az elérhető adatbázisok listájából. Ebben a példában válassza ki a
AdventureWorks2025adatbázist.A Fájl menüben válassza Új lekérdezéslehetőséget.
Másolja és illessze be a következő példát a lekérdezésszerkesztőbe. A példa létrehozza a
Purchasing.uspVendorAllInfoeljárást, amely visszaadja az Adventure Works Cycles adatbázis összes szállítójának nevét, az általuk megadott termékeket, a hitelminősítésüket és a rendelkezésre állásukat.CREATE PROCEDURE Purchasing.uspVendorAllInfo WITH EXECUTE AS CALLER AS SET NOCOUNT ON; SELECT v.Name AS Vendor, p.Name AS 'Product name', v.CreditRating AS 'Rating', v.ActiveFlag AS Availability FROM Purchasing.Vendor v INNER JOIN Purchasing.ProductVendor pv ON v.BusinessEntityID = pv.BusinessEntityID INNER JOIN Production.Product p ON pv.ProductID = p.ProductID ORDER BY v.Name ASC; GOA Fájl menüben válassza Új lekérdezéslehetőséget.
Másolja és illessze be a következő példát a lekérdezésszerkesztőbe. A példa módosítja a
uspVendorAllInfoeljárást. AEXECUTE AS CALLERzáradék el lesz távolítva, és az eljárás törzse úgy módosul, hogy csak azokat a szállítókat adja vissza, amelyek a megadott terméket szolgáltatják. ALEFTésCASEfüggvények testre szabják az eredményhalmaz megjelenését.Important
A meglévő tárolt eljárás elvetése és újrakészítése eltávolítja a tárolt eljáráshoz explicit módon megadott engedélyeket. A
ALTER-t használja a meglévő tárolt eljárás módosítására.ALTER PROCEDURE Purchasing.uspVendorAllInfo @Product varchar(25) AS SET NOCOUNT ON; SELECT LEFT(v.Name, 25) AS Vendor, LEFT(p.Name, 25) AS 'Product name', '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.BusinessEntityID = pv.BusinessEntityID INNER JOIN Production.Product AS p ON pv.ProductID = p.ProductID WHERE p.Name LIKE @Product ORDER BY v.Name ASC; GOAz eljárásdefiníció módosításainak mentéséhez a Lekérdezés menüben válassza a Végrehajtáslehetőséget.
A frissített eljárásdefiníció Transact-SQL szkriptként való mentéséhez a Fájl menüben válassza a Mentés máskéntlehetőséget. Fogadja el a fájlnevet, vagy cserélje le egy új névre, majd válassza a Mentéslehetőséget.
A módosított tárolt eljárás futtatásához hajtsa végre a következő példát.
EXEC Purchasing.uspVendorAllInfo N'LL Crankarm'; GO