sp_executesql 복잡 한 유 니 코드 표현 식 오류 해결 방법 사용
1680 단어 sp executesql
DECLARE @MyName NVARCHAR(100)
DECLARE @FieldName SYSNAME = N'Name'
EXECUTE sp_executesql N'SELECT TOP 1 @OutputName = ['+ @FieldName +'] FROM [dbo].[Member]',
N'@OutputName NVARCHAR(100) OUTPUT',
@MyName OUTPUT;
SELECT @MyName
문 제 는 더 복잡 한 유 니 코드 표현 식(예 를 들 어+연산 자 를 사용 하여 두 문자열 을 연결 하 는 것)을 사용 할 수 없습니다.참고:http://technet.microsoft.com/zh-cn/library/ms188001.aspx[@statement=]statement 은 Transact-SQL 구문 이나 일괄 처 리 된 유 니 코드 문자열 을 포함 합 니 다.statement 은 유 니 코드 상수 나 유 니 코드 변수 여야 합 니 다.더 복잡 한 유 니 코드 표현 식 을 사용 할 수 없습니다.(예 를 들 어+연산 자 를 사용 하여 두 문자열 을 연결 합 니 다.)문자 상수 사용 을 허용 하지 않 습 니 다.유 니 코드 상수 가 지정 되면 N 을 접두사 로 사용 해 야 합 니 다.예 를 들 어 유 니 코드 상수 N'spwho'는 유효 하지만 문자 상수'spwho'는 무효 입 니 다.문자열 의 크기 는 사용 가능 한 데이터베이스 서버 메모리 에 만 제 한 됩 니 다.64 비트 서버 에서 문자열 크기 는 nvarchar(max)의 최대 크기 인 2GB 로 제 한 됩 니 다.문 제 를 해결 하려 면 다음 코드 DECLARE@sql NVARCHAR(MAX)와 같은 변 수 를 선언 할 수 있 습 니 다.동적 데이터 이름,표 이름 또는 필드 가 있 는 SQL 문 구 를 이 변수 에 할당 한 다음 이 변수 로 sp 에 전달 할 수 있 습 니 다.executesql 중..
DECLARE @MyName NVARCHAR(100)
DECLARE @FieldName SYSNAME = N'Name'
DECLARE @sql NVARCHAR(MAX) = N'SELECT TOP 1 @OutputName = ['+ @FieldName +'] FROM [dbo].[Member]'
EXECUTE sp_executesql @sql,
N'@OutputName NVARCHAR(100) OUTPUT',
@MyName OUTPUT;
SELECT @MyName
변통 하면 문 제 는 쉽게 해결 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
시스템 저장 프로시저,spexecutesql문법 sp_executesql [@stmt =] stmt [ {, [@params =] N'@parameter_name data_type [,...n]' } {, [@param1 =] 'value1' [,.....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.