저장 프로시저란 무엇인가요?

저장 프로시저란 무엇인가요? 어떻게 작동하나요? 저장 프로시저의 구성은 무엇인가요(각각 저장 프로시저여야만 하는 것들)?

해결책

저장 프로시저는 몇 가지 방법으로 실행할 수 있는 SQL 문 일괄 처리입니다. 대부분의 주요 DBM은 저장 프로시저를 지원하지만, 모든 DBM이 지원하는 것은 아닙니다. 자세한 내용은 특정 DBMS 도움말 문서에서 확인해야 합니다. 제가 가장 잘 알고 있는 SQL Server를 샘플로 사용하겠습니다.

저장 프로시저를 만드는 구문은 매우 간단합니다:

CREATE PROCEDURE .

     <param> 

AS

예를 들어

CREATE PROCEDURE Users_GetUserInfo

    @login nvarchar(30)=null

AS

    SELECT * from [Users]
    WHERE ISNULL(@login,login)=login

저장 프로시저의 장점은 데이터 액세스 로직을 한곳으로 중앙 집중화하여 DBA가 쉽게 최적화할 수 있다는 것입니다. 또한 저장 프로시저에 실행 권한을 부여할 수 있지만 사용자에게 기본 테이블에 대한 읽기/쓰기 권한이 필요하지 않다는 점에서 보안상의 이점도 있습니다. 이는 SQL 인젝션에 대한 좋은 첫 번째 단계입니다.

저장 프로시저에는 기본적으로 기본 CRUD 작업과 관련된 유지 관리라는 단점이 있습니다. 각 테이블에 삽입, 업데이트, 삭제 및 기본 키에 기반한 선택이 하나 이상 있다고 가정하면 각 테이블에 4개의 프로시저가 있다는 뜻입니다. 이제 400개의 테이블로 구성된 적당한 크기의 데이터베이스를 가정하면 프로시저가 1600개입니다! 물론 중복되는 프로시저가 없다고 가정했을 때입니다.

바로 이 부분에서 ORM 또는 다른 방법을 사용하여 기본 CRUD 작업을 자동으로 생성하면 많은 이점이 있습니다.

해설 (3)

저장 프로시저는 특수 작업을 수행하는 데 사용되는 미리 컴파일된 SQL 문 집합입니다.

예제: Employee` 테이블이 있는 경우

Employee ID  Name       Age  Mobile
---------------------------------------
001          Sidheswar  25   9938885469
002          Pritish    32   9178542436

먼저 Employee 테이블을 검색합니다:

Create Procedure Employee details
As
Begin
    Select * from Employee
End

SQL Server에서 프로시저를 실행합니다:

Execute   Employee details

--- (Employee details is a user defined name, give a name as you want)

그런 다음 두 번째로 Employee 테이블에 값을 삽입합니다.

Create Procedure employee_insert
    (@EmployeeID int, @Name Varchar(30), @Age int, @Mobile int)
As
Begin
    Insert Into Employee
    Values (@EmployeeID, @Name, @Age, @Mobile)
End

SQL Server에서 매개변수화된 프로시저를 실행합니다:

Execute employee_insert 003,’xyz’,27,1234567890

  --(Parameter size must be same as declared column size)

예: @Name Varchar(30)

Employee테이블에서Name열의 크기는varchar(30)`이어야 합니다.

해설 (1)

저장 프로시저 만든 데이터베이스에 저장된 및 SQL 문을 그룹입니다. 저장 프로시저 는 단일 입력 매개 변수를 사용할 수 있도록 네트워크를 통해 서로 다른 입력 데이터를 사용하여 클라이언트에 여러 절차를 사용할 수 있습니다. 저장 프로시저 줄일 수 있는 네트워크 트래픽 및 성능 향상. 만약 우리가 모든 클라이언트는 저장 프로시저 수정하십시오 내려받습니다 업데이트되도록 저장 프로시저.

저장 프로시저를 만드는 샘플링합니다

CREATE PROCEDURE test_display
AS
    SELECT FirstName, LastName
    FROM tb_test;

EXEC test_display;

저장 프로시저 사용하는 것이 좋습니다

  • 저장 프로시저 수행되었는지 모듈성.

한 번 프로시저에서는 만들 수도 있고, 그것이 어떤 프로그램에서 횟수를 호출하십시오 데이터베이스입니까 저장한다.

  • 저장 프로시저를 통해 빠른 실행.

많은 양의 SQL 코드를 单捞磐啊 작업이 수행되는 반복적으로 들립니다, 저장 프로시저 더 빠를 수 있습니다. 이들은 처음 실행할 때 최적화되었는지 해석되고, 그리고 나중에 사용하기 위해 메모리 캐시에 저장된 프로시저에서는 컴파일됨 버전이 있다. 즉, 저장 프로시저를 사용할 때마다 레퍼스트 필요는 없으며, 그 결과 및 레오티미스트 훨씬 빠른 실행 시간.

  • 저장 프로시저 네트워크 트래픽을 줄일 수 있습니다.

수백 개의 줄이 Transact-SQL 코드를 필요로 하는 작업을 수행할 수 있는 하나의 코드에서 실행하는 절차를 통해 기술서임을 보내는 것이 아니라 네트워크를 통해 수백 개의 코드 행.

  • 저장 프로시저 더 나은 보안 기능을 제공합니다.

사용자가 실행할 수 있는 권한을 부여 받을 수 있는 저장 프로시저를 실행할 수 있는 권한이 없는 경우에도 procedure& # 39 의 명령문입니다 직접.

Sql Server 에서 우리는 서로 다른 유형의 저장 프로시저:

  • 시스템 저장 프로시저

  • 사용자정의된 저장 프로시저

  • 확장됨 저장 프로시저

      • 절차는 System*-store 저장됩니까 마스터야 데이터베이스 및 시작하여 '이' sp_ 접두어입니다. 이러한 절차를 SQL Server 를 지원하는 기능을 사용할 수 있는 다양한 작업을 수행할 수 있는 외부 응용 프로그램 페이징됩니다 시스템 테이블

예: sp_helptext [StoredProcedure_Name]

      • 저장됩니까 절차는 일반적으로 사용자 데이터베이스 및 고안되었습니다 사용자정의된 저장됩니까 일반적으로 사용자 데이터베이스 작업을 완료할 계획이다. Sp '를 사용하지 않는 동안 이러한 절차를 코딩' 우리가 먼저, '' 접두어입니다 sp 접두어입니다 사용하여 데이터베이스 사용자 정의 데이터베이스에 정의마스터 확인 후, 볼 수밖에 없다.
      • 에서 함수를 호출하는 확장 DLL 파일을 저장 프로시저 오른길로 절차. 요즘 확장됨 저장됩니까 절차는 원인에 대한 사용하지 않는 것이 확장됨 저장 프로시저 사용되지 않는 게 좋을 것 같다.
해설 (0)

일반적으로 저장 프로시저는 'SQL 함수'입니다:

-- a name
CREATE PROCEDURE spGetPerson
-- parameters
CREATE PROCEDURE spGetPerson(@PersonID int)
-- a body
CREATE PROCEDURE spGetPerson(@PersonID int)
AS
SELECT FirstName, LastName ....
FROM People
WHERE PersonID = @PersonID

이것은 T-SQL에 초점을 맞춘 예제입니다. 저장 프로시저는 대부분의 SQL 문을 실행하고 스칼라 및 테이블 기반 값을 반환할 수 있으며 SQL 인젝션 공격을 방지하므로 더 안전한 것으로 간주됩니다.

해설 (0)

이 같은 상황을 생각해 보면

  • You have a 데이터베이스를 통해 데이터.
  • 액세스하려면 필요한 여러 가지 서로 다른 애플리케이션을 중앙 데이터베이스에 있는 일부, 그리고 앞으로 새로운 애플리케이션으로의 너무.
  • 예정이면 인라인 삽입하십시오 중앙 데이터베이스에 액세스하려면 # 39 의 코드는 내부 데이터베이스 쿼리합니다 각 application& 개별적으로 관심용 아마도 당신은 같은 다른 applications& 복제할지 쿼리하지 다시 인사이드라면 # 39. 코드.
  • 그런 상황에서 저장 프로시저 (sp) 에서 사용할 수 있습니다. 저장 프로시저 (절차) 및 저장할 수 있는 일반적인 쿼리합니다 쓰고 함께 중앙 데이터베이스.
  • 이제 복제에서는 결코 일어날 수 있으며 데이터 액세스 및 유지 보수 작업 이전과 집중식으로 수행됩니다.

참고:

  • 위의 경우에는 밥값으로 &quot, 왜 우리는 중앙 서버에 모든 응용 프로그램 데이터 액세스 소개하십시오 상호 작용할 수 없습니다. 예. 할 수 있는 대안이다. 하지만,
  • 기본 제공하며, sp, sp 가 인라인 쿼리합니다 너회의 데이터 액세스 코드 달리 볼 때 방식은 미리 컴파일된 명령문입니다 도왔으매 그들은 함께 진행될 가속화합니다. 및 통신 비용 (네트워크를 통해) 이 최소한. Sps 는 데이터베이스 서버의 부하가 좀 더 추가 - 그 반대. 이렇게 될 경우 문제가 될 상황에 따라 중앙 서버를 통해 더 나은 선택을 인라인 쿼리합니다 데이터 액세스 된다.
해설 (0)

저장 프로시저 주로 특정 작업을 수행하는 데 사용할 수 있는 데이터베이스. 예를 들어

  • Get 데이터베이스 결과 일부 데이터 세트의 비즈니스 로직을.
  • Autoexec. 여러 데이터베이스 작업을 한 가능하다.
  • 다른 테이블에 마이그레이션하려면 사용되는 데이터를 한 표.
  • 같은 다른 프로그래밍 언어, 자바 부를 수 있다.
해설 (0)

단지 하나의 파일로 저장 프로시저 는 SQL 문에서 그룹 컴파일됨 실행 계획.

  1. 한 번 만드시겠습니까 시간과 횟수를 n 부르네요
  2. 이를 통해 네트워크 트래픽을

예: 저장 프로시저 만들기

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE GetEmployee
      @EmployeeID int = 0
AS
BEGIN
      SET NOCOUNT ON;

      SELECT FirstName, LastName, BirthDate, City, Country
      FROM Employees 
      WHERE EmployeeID = @EmployeeID
END
GO

저장 프로시저 또는 수정하십시오 변경하십시오.

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE GetEmployee
      @EmployeeID int = 0
AS
BEGIN
    SET NOCOUNT ON;

    SELECT FirstName, LastName, BirthDate, City, Country
    FROM Employees 
    WHERE EmployeeID = @EmployeeID
END
GO

저장 프로시저 삭제하시겠습니까 드롭하거나.

DROP PROCEDURE GetEmployee
해설 (0)

데이터 저장 프로시저를 데이터 수정 및 삭제 data-in 데이터베이스 테이블을 검색하는 데 사용됩니다. # 39 너회가 don& t need to write a whole, insert, update SQL 명령을 할 때마다 삭제할지를 data-in 있는 SQL 데이터베이스.

해설 (0)

what is a 저장됩니까 procedure&quot "; 다른 사람이 이미 답변됨 삽입하십시오. 어떤 한 덜 알려진 방법을 사용하여 내아기마저도 post 는 저장 프로시저. 이는 '그룹짓기 저장 프로시저' 또는 '번호 저장 프로시저'.

  • 구문 참조 *

! [입력하십시오. 이미지 여기에 설명을] [1]

'. 숫자 '따라 [이] (https://docs.microsoft.com/en-us/sql/t-sql/statements/create-procedure-transact-sql)

&gt 그룹화하려면 절차에 사용되는 선택적 정수, 같은 이름의. 이러한 방법으로 드롭합니다 기술서임을 프로시저에서는 그룹화할 절차를 함께 떨어트림 수 있습니다.

  • 예 *
CREATE Procedure FirstTest 
(
    @InputA INT
)
AS 
BEGIN
    SELECT 'A' + CONVERT(VARCHAR(10),@InputA)
END
GO

CREATE Procedure FirstTest;2
(
    @InputA INT,
    @InputB INT
)
AS 
BEGIN
    SELECT 'A' + CONVERT(VARCHAR(10),@InputA)+ CONVERT(VARCHAR(10),@InputB)
END
GO
  • Use *
exec FirstTest 10
exec FirstTest;2 20,30
  • 결과 *

! [입력하십시오. 이미지 여기에 설명을] [2]

    • 또 다른 시도
CREATE Procedure SecondTest;2
(
     @InputA INT,
    @InputB INT
)
AS 
BEGIN
    SELECT 'A' + CONVERT(VARCHAR(10),@InputA)+ CONVERT(VARCHAR(10),@InputB)
END
GO
  • 결과 *

&gt. Msg 2730, 레벨 1, 절차, 1 호선 세콘트레스트 11khz, 상태 [일괄작업 시작 3 호선]

39, & # 39 SecondTest& 프로시저에서는 생성할 수 없습니다. 같은 이름의 그룹으로 절차 때문에 2 수를 현재 존재하는 데이터베이스 및 그룹 1 수가 없습니다.

39, & # 39 SecondTest& autoexec. 만드시겠습니까 프로시저에서는 합니다;; 1 이번이 처음이다.

  • 참조입니다 *:
  1. [만들 수 있는 절차를 구문은] (https://docs.microsoft.com/en-us/sql/t-sql/statements/create-procedure-transact-sql)
  2. [번호 저장 프로시저 SQL Server 에서 - techie-friendly.blogspot.com] (http://techie-friendly.blogspot.com/2014/05/numbered-stored-procedures-in-sql-server.html)
  3. [그룹짓기 저장 프로시저 - 자크 르망] (http://sqlmag.com/database-administration/all-about-stored-procedures)
  • 二쇱쓽 *
  1. 39, 절차, 너회가 can& 그룹화할 후 t 드롭하여 것이다.

  2. Microsoft SQL Server 버전에 향후 이 기능이 삭제될 수 있습니다.
해설 (0)
  • 저장 프로시저 () 는 하나 이상의 sql 명령문입니다 사전 컴파일된 설정되었습니다 일부 특정 작업을 수행하는.

  • 저장 프로시저 실행해야 할 사용하여 '홀로서기' 실행

  • 저장 프로시저 여러 매개 변수를 반환할 수 있습니다

  • 저장 프로시저 transact 구현하는 데 사용할 수 있습니다

해설 (0)

Release. 수집, 저장 프로시저 () 는 sql 서버 데이터베이스에 저장되며, 로직, 절차적 제표를 이리에 컴파일됨 점검됩니다. 일반적으로 다른 데이터베이스 객체 및 제어 서버 보안 메커니즘을 통해 저장 프로시저 취급을 받는다.

해설 (0)

저장 프로시저 문이 있는 한 번만 기록되었으므로 네트워크 트래픽을 줄이고, 클라이언트와 서버 간에. 또한 Sql 인젝션 공격을 피할 수 있습니다.

  • 을 넣다 타사 프로그램을 위한 응용 프로그램에서 사용하는 경우 여기서 경우에만 표시하는 지불액 처리, 데이터베이스 그동안 활동에 필요한 정보 및 정보기술 (it) 이 제 3 자 인증되었는지 설정하여 데이터 기밀성, 이를 통해 조성할 수 사용하여 권한을 저장 프로시저.
  • 테이블 목표로 테이블에 있는 경우에만 그 갱신 완료 하지만, 다른 테이블을 조성할 수 있는 t 업데이트하십시오 shouldn& # 39 에서 사용하여 데이터 무결성을 트랜잭션 처리 및 오류 처리.
  • 스케쳐내 반환되기를 하나 이상의 데이터 형식을 사용하여 항목을 것입니다 사용하는 것이 더 나은 출력입니다 매개변수입니다. 저장 프로시저 출력 매개 변수를 사용하는, 즉, 우리는 아무 것도 할 귀의하지않는다고 합니다. 단 하나의 항목만 반환되기를 스케쳐내 정수 잘 활용하여 데이터를 입력한 다음 반환 값. 사실 모든 성공과 실패를 저장됩니까 미디어만을 반환 값은 "라는 뜻이다.
해설 (0)

저장 프로시저 (dbms) 의, 집합 s # 39 는 sql 문을 통해 지정된 이름 that& 데이터베이스에 저장된 컴파일됨 양식, 에 의해 공유됨 수 있도록 다양한 프로그램을.

저장 프로시저 사용하는 데 유용할 수 있습니다

  1. 제어됩니다 제공하는 데이터 액세스 (최종 사용자가 변경할 수 있지만, 데이터를 입력하거나 can& # 39 만 쓰지 않고 절차)

  2. 데이터 무결성을 보장하기 (약간만이라도 입력된 데이터를 일관되게) 와

  3. 생산성 향상 (저장 프로시저 진술에 한 번만 쓸 필요)

해설 (0)

예를 들어,

        • 저장됩니까 프로그래밍합니다 프로그램 / 함수은 저장됩니까 데이터베이스로 저장 프로시저 있다.

각 저장됩니까 프로그램에 포함된 것이 아닌 SQL 문을 이루어집니다. 이 같은 발언은 여러 명령문입니다 구분된 세미콜론 (;) 로 구성된 복합 기술서임을 될 수 있습니다. 문자를 사용할 수 있습니다.

CREATE PROCEDURE dorepeat(p1 INT)
BEGIN
  SET @x = 0;
  REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
END;
해설 (0)

저장 프로시저 출력 매개 변수, SQL Server 의 입력 매개 변수를 사용할 수 있고 여러 값을 반환할 수 있습니다. sql Server 의 저장 프로시저 호출 상태 데이터베이스 작업을 수행할 수 있는 프로그램 명령문입니다 값을 반환하는 절차 또는 일괄작업.

Sql Server 의 이점은 저장 프로시저

모듈성 수 있도록 지원합니다. 그들은 허용하시겠습니까 빠른 실행. 그들은 네트워크 트래픽을 줄일 수 있습니다. 그들은 보안 메커니즘을 활용될 수 있다.

예입니다 저장됩니까 프로시저입니다 는 매개변수에서 실행하므로 쿼리하고 반품하십시오 한 결과. 특히, 저장 프로시저에 매개변수로 비즈니상티이드 받아 사용하고 있는 이 기본 키를 일치시킵니다 허먼레수르체스콜럼프로이디 표를 반품하십시오 요청되었습니다 부하예요.


> create procedure HumanResources.uspFindEmployee    `*
해설 (0)

서버에 저장 프로시저 코드를 만들 수 있을 것입니다. 매개변수입니다 찾아 출력입니다 전달할 수 있습니다.

create procedure_name (para1 int,para2 decimal)
as
select * from TableName
해설 (0)