close

즐거운 하루 보내기

  • 표지
  • 지역로그
  • 태그
  • 방명록

SP_EXECUTESQL

COMPUTING RSS Icon ATOM Icon 2009/11/24 11:04 bbon

구문 :
sp_executesql [ @stmt = ] stmt
[
{, [@params=] N'@parameter_name data_type [ OUT | OUTPUT ][,...n]' }
{, [ @param1 = ] 'value1' [ ,...n ] }
]


인수 :
[ @stmt = ] stmt
Transact-SQL 문 또는 일괄 처리를 포함한 유니코드 문자열입니다.
stmt는 유니코드 상수 또는 유니코드 변수여야 합니다.
+ 연산자로 두 문자열을 연결한 식처럼 더 복잡한 유니코드 식은 사용할 수 없습니다.
문자 상수도 사용할 수 없습니다.
유니코드 상수를 지정한 경우 접두사 N으로 시작해야 합니다.
예를 들어 유니코드 상수 N'sp_who'는 유효하지만 'sp_who'는 그렇지 않습니다.
문자열의 크기는 사용 가능한 데이터베이스 서버 메모리의 용량에 따라서만 제한됩니다.
64비트 서버에서는 문자열 크기가 nvarchar(max)의 최대 크기인 2GB로 제한됩니다.
stmt에 포함된 각 매개 변수에는 @params 매개 변수 정의 목록과 매개 변수 값 목록 모두에
해당되는 항목이 있어야 합니다.

[ @params = ] N'@parameter_name data_type [ ,... n ]'
stmt에 포함된 모든 매개 변수의 정의를 포함하는 하나의 문자열입니다.
문자열은 유니코드 상수 또는 유니코드 변수여야 합니다.
각 매개 변수의 정의는 매개 변수 이름과 데이터 형식으로 구성됩니다.
n은 추가 매개 변수 정의를 나타내는 자리 표시자입니다.
stmt에 지정된 모든 매개 변수는 반드시 @params에 정의되어야 합니다.
stmt의 Transact-SQL 문 또는 일괄 처리에 매개 변수가 없으면 @params가 필요하지 않습니다.
이 매개 변수의 기본값은 NULL입니다.

[ @param1 = ] 'value1'
매개 변수 문자열에 정의된 첫 번째 매개 변수의 값입니다.
값은 유니코드 상수 또는 유니코드 변수가 될 수 있습니다.
stmt에 포함된 모든 매개 변수에 대해 제공되는 매개 변수 값이 있어야 합니다.
stmt의 Transact-SQL 문 또는 일괄 처리에 매개 변수가 없으면 값이 필요하지 않습니다.

[ OUT | OUTPUT ]
매개 변수가 출력 매개 변수임을 나타냅니다.
프로시저가 CLR(공용 언어 런타임) 프로시저가 아닐 경우 text, ntext 및 image 매개 변수를
OUTPUT 매개 변수로 사용할 수 있습니다.
프로시저가 CLR 프로시저가 아닐 경우 OUTPUT 키워드를 사용하는 출력 매개 변수가
커서 자리 표시자일 수 있습니다.

n
추가 매개 변수의 값에 대한 자리 표시자입니다.
값은 상수 또는 변수만 가능합니다.
함수 또는 연산자를 사용하여 작성한 식처럼 더 복잡한 식은 값으로 사용할 수 없습니다.


반환 코드 값 :
0(성공) 또는 0이 아닌 값(실패)


결과집합 :
작성된 모든 SQL 문에서 SQL 문자열로 결과 집합을 반환합니다.


주의 :
sp_executesql은 일괄 처리, 이름의 범위 및 데이터베이스 컨텍스트 면에서 
EXECUTE와 동작이 동일합니다.
sp_executesql stmt 매개 변수의 Transact-SQL 문 또는 일괄 처리는 sp_executesql 문이
실행된 후에 컴파일됩니다.
stmt의 내용은 sp_executesql이라는 일괄 처리의 실행 계획과 별도로 컴파일되고 실행됩니다.
sp_executesql 일괄 처리는 sp_executesql을 호출하는 일괄 처리에서 선언된 변수를
참조할 수 없습니다.
sp_executesql 일괄 처리의 로컬 커서 또는 변수는 sp_executesql을 호출하는 일괄 처리에
노출되지 않습니다.
데이터베이스 컨텍스트의 변경 내용은 sp_executesql 문이 종료될 때까지만 지속됩니다.

문에 대한 매개 변수 값의 변경 내용이 변형뿐인 경우 저장 프로시저 대신 sp_executesql을
사용하여 Transact-SQL 문을 여러 번 실행할 수 있습니다.
Transact-SQL 문 자체는 달라지지 않고 매개 변수 값만 달라지므로
SQL Server 쿼리 최적화 프로그램은 처음 실행할 때 생성되는 실행 계획을 다시 사용합니다.


[code:sql]declare @sql nvarchar(max), @tablename nvarchar(500), @schemaname nvarchar(500), @paramDefinition nvarchar(500) set @tablename = '테이블명' set @schemaname = '스키마명' set @paramDefinition = N'@t nvarchar(500), @s nvarchar(500)' set @sql = N' select t.name from sys.tables t join sys.schemas s on t.schema_id = s.schema_id where t.name like ''%'' + @t + ''%'' and s.name like ''%'' + @s + ''%''' -- print @sql exec sp_executesql @sql, @paramDefinition, @t = @tablename, @s = @schemaname

MSDN - sp_executesql(Transact-SQL) [링크]
Contact bbon
  • twitter : @bbonkr
  • facebook : facebook.com/bbonkr
  • e-mail : bbon72@gmail.com

"COMPUTING" 카테고리의 다른 글

  • iTunes 10 (댓글 0개 / 트랙백 0개) 2010/09/02
  • Facebook Like Button 추가 (댓글 0개 / 트랙백 0개) 2010/08/20
  • iODD 펌웨어 판올림 (댓글 0개 / 트랙백 0개) 2010/07/30
Tweet
TAG MSSQL이올린 태그검색올블로그 태그검색테크노라티 태그검색태그스토리 태그검색티스토리 태그검색
받은 트랙백이 없고, 댓글이 없습니다.

트랙백 주소 :: http://bbon.kr/blog/trackback/715

◀ 이전페이지 1 ... 88 89 90 91 92 93 94 95 96 ... 699 다음페이지 ▶

지역로그 : 태그 : 방명록 : 관리자 : 글쓰기
bbon’s Blog is powered by Textcube 1.8.3.1 : Secondary Dominant / Designed by plyfly.net