CREATE PROCEDURE dbo.usp_testing
AS
BEGIN
DECLARE @STATE INT,@TBLNAME sysname,@TrID VARCHAR(50),@FAMILYID VARCHAR(50),@SQL varchar(8000)
DECLARE cur CURSOR FOR
SELECT TrID,TableName
FROM LogTable
WHERE Prefix='vid'
AND YEAR(DateTime)=YEAR(GETDATE())AND MONTH(DateTime)=MONTH(GETDATE())AND DAY(DateTime)=DAY(GETDATE())
OPEN cur
FETCH NEXT FROM cur
INTO @TrID,@TBLNAME
IF(@TBLNAME='Student' OR @TBLNAME='Family' OR @TBLNAME='College')
BEGIN
**select @SQL='SELECT MemberID FROM'+' '[email protected]+' '+'where TrId='[email protected]
select @FAMILYID=EXEC(@SQL)**
이 줄에는 오류가 표시됩니다.저장 프로 시저에서 Tablename을 변수로 사용하는 변수의 열 값에 액세스해야합니다.
select @SQL='select @ID=(SELECT MemberID FROM'+' '[email protected]+' '+'where TrId='[email protected] +')'
뿐만 아니라이 너무
exec(@sql)
END
END
GO
에서 나는
ALTER PROCEDURE [dbo].[USP_TESTSP]
AS
BEGIN
DECLARE @SQL nvarchar(max),@TABLENAME sysname,@id nvarchar(max)
SELECT @TABLENAME='student'
select @SQL= 'select @id=MemberID FROM'+' '[email protected]+' '+'where TrId=11091'
exec sp_executesql @SQL,'@id nvarchar(max)output',@[email protected] output
--select exec (@SQL)
END
아래에 설명 된 바와 같이, 나는 몇 가지 변경을 수행 한 변수 @ID
안녕에 MEMBERID을 둘 필요
, 오류 :
프로 시저 'ntext/nchar/nvarchar'형식의 '@parameters'매개 변수가 필요합니다.
잘못된 열 이름 '11091'이 나타납니다. – Aada
감사합니다. Andriy에게 도움을주십시오. – Aada