아래의 DDL 참조하십시오TSQL - 매개 변수 및 동적 테이블 이름
Declare @ID int
Declare @Name varchar(30)
set @Name = 'Ian'
select @ID=ID FROM Person WHERE [email protected]
Print @ID
내가 1가 화면에 출력 즉 기대하는 것처럼이 작동 :
CREATE TABLE Person (ID int identity, Name varchar(30), primary key(ID))
INSERT INTO Person (Name) VALUES ('Ian')
아래 TSQL을 참조하세요. 테이블 이름을 동적으로 변경하려고합니다. 예 :
Declare @ID int
Declare @Name varchar(30)
Declare @TableName as varchar(30)
set @TableName= 'Person'
set @Name = 'Ian'
select @ID=ID FROM @TableName WHERE [email protected]
Print @ID
위의 SQL은 분명히 작동하지 않습니다. TSQL을 사용해야한다는 것을 알고 있습니다. 나는 EXEC와 sp_executesql을 사용해 보았지만, 거기에는 부분적으로 만 갈 수있다. 어떻게 구현해야합니까? SQL 문은 select @ID=ID FROM @TableName WHERE [email protected]
이어야합니다.
쿼리를 작성하기 위해 문자열 변수를 만든 다음 해당 변수에 대해 sp_executesql을 사용하십시오. –
읽어보기 : http://www.sommarskog.se/dynamic_sql.html#Common_cases – Anon