대상 데이터베이스에 테이블이 있으면 저장 프로 시저를 체크인하려고합니다. 그렇지 않은 경우 소스 데이터베이스에서 information_schema 테이블을 사용하여 테이블을 작성합니다. 그러나 sp_execute를 사용하여 테이블이 존재하면 다시 가져 오려고하면 'int'유형의 '@handle'매개 변수가 필요합니다.라는 오류가 발생합니다.
@handle 매개 변수를 사용하지 않습니다. 누군가이 오류의 의미와 내가받는 이유를 말해 줄 수 있습니까? 내 코드의 관련 부분은 다음과 같습니다.
DECLARE @SQL NVARCHAR(MAX),
@Parameters NVARCHAR(4000),
@TableNotExists INT,
@SourceTable NVARCHAR(200),
@DestDB NVARCHAR(200)
BEGIN
SET @SourceTable = 'table'
SET @DestDB = 'database'
SET @Parameters = N'@SourceTableIN NVARCHAR(200), @TableNotExistsOut INT OUTPUT'
SET @SQL = N'USE [' + @DestDB + '] IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = ''BASE TABLE'' AND TABLE_NAME = @SourceTableIN)
BEGIN SET @TableNotExistOUT = 1 END'
EXEC sp_Execute @SQL, @Parameters, @SourceTableIN = @SourceTable, @TableNotExistsOUt = @TableNotExists OUTPUT
END
@TableNotExistsOut
SQL 텍스트 내에서 변수의 철자가 잘못되었습니다.
sp_executesql
오히려 전화 하는 것을 의미 했습니까sp_execute
?