SQL 쿼리에서 테이블 이름 변수를 어떻게 사용할 수 있습니까?
Jan 23, 2025 am 06:31 AM변수를 테이블 이름으로 사용
질문:
변수에 저장된 테이블 이름(예: "@tablename")을 사용하여 쿼리를 실행하려고 하면 테이블 변수 "@tablename"을 선언해야 한다는 오류가 표시됩니다.
해결책:
질문에 표시된 것과 같은 정적 쿼리에서는 테이블 이름과 열 이름이 정적이어야 합니다. 동적으로 채워진 테이블 이름이 있는 동적 쿼리의 경우 sp_executesql
을 사용하여 전체 SQL을 동적으로 생성하고 실행해야 합니다.
예:
다른 데이터베이스에 있는 동일한 테이블의 데이터를 비교한다고 가정해 보겠습니다. 정적 쿼리는 다음과 같습니다.
SELECT * FROM [DB_ONE].[dbo].[ACTY] EXCEPT SELECT * FROM [DB_TWO].[dbo].[ACTY]
이 쿼리를 동적으로 만들려면 스키마와 테이블 이름을 변수로 설정할 수 있습니다.
declare @schema sysname; declare @table sysname; declare @query nvarchar(max); set @schema = 'dbo'; set @table = 'ACTY'; set @query = ' SELECT * FROM [DB_ONE].' + QUOTENAME(@schema) + '.' + QUOTENAME(@table) + ' EXCEPT SELECT * FROM [DB_TWO].' + QUOTENAME(@schema) + '.' + QUOTENAME(@table); EXEC sp_executesql @query;
sp_executesql
을 이용하면 동적으로 생성된 SQL을 실행할 수 있다.
기타 참고사항:
동적 쿼리에는 신중한 고려와 유지 관리가 필요합니다. 코드에서 이러한 쿼리를 구현하기 전에 동적 SQL의 세부 사항을 숙지하는 것이 좋습니다.
위 내용은 SQL 쿼리에서 테이블 이름 변수를 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까?
