sp_executesql 복잡 한 유 니 코드 표현 식 오류 해결 방법 사용

1680 단어 sp executesql
Msg 102,Level 15,State 1,Line 3 Incorrect syntax near'+'.아래 코드 를 실행 하려 고 할 때 이 오류 알림 을 받 을 수 있 습 니 다
 
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
변통 하면 문 제 는 쉽게 해결 할 수 있다.

좋은 웹페이지 즐겨찾기