런타임 시 문 작성

런타임 시 SQL 문을 동적으로 작성해야 하는 대부분의 Microsoft SQL Server 응용 프로그램에서는 데이터베이스 API 함수 또는 메서드를 호출하여 문을 실행하기 전에 SQL 문을 작성합니다. 예를 들어 ODBC를 사용하는 C 언어 응용 프로그램에서는 동적으로 하나 이상의 SQL 문을 문자 배열로 작성하고 해당 배열을 SQLPrepare 또는 SQLExecDirect 함수로 전달합니다.

Transact-SQL은 Transact-SQL 스크립트, 저장 프로시저 및 트리거에서 런타임 시 SQL 문을 작성하는 다음과 같은 방법을 지원합니다.

  • sp_executesql 시스템 저장 프로시저를 사용하여 유니코드 문자열을 실행합니다. sp_executesql은 RAISERROR 문과 유사한 매개 변수 대체를 지원합니다.

  • EXECUTE 문을 사용하여 문자열을 실행합니다. EXECUTE 문은 실행된 문자열에서 매개 변수 대체를 지원하지 않습니다.

    보안 정보보안 정보

    EXECUTE 문을 사용하여 문자열을 실행하면 SQL 삽입 공격을 받기 쉽습니다. 대신 sp_executesql을 매개 변수와 함께 사용하는 것이 좋습니다.