2013-10-31 4 views
0

SQL에 하드 코딩 된 데이터베이스 값이 있고 변수로 변환해야하지만, 그 위치에 선언했는데 Production2가 아래의 @Source_Database_Name 변수로 변경해야하지만 정보로 배치하는 방법을 모릅니다. 구문 오류가 발생하지 않고 바로 스키마하드 코딩 된 데이터베이스에 대한 변수를 어떻게 선언합니까?

+0

그냥 Transact-SQL을 .sql 파일에 저장합니까? SSMS의'sqlcmd'와'sqlcmd mode '는 변수를 사용할 수 있기 때문에 가능합니다. 그렇지 않으면 동적 SQL/동의어/연결된 서버입니다. 이러한 프로 시저가 저장되어 있고 다른 환경에 배포 된 경우 SQL Server Data Tools와 같은 기능을 사용하여 관리 할 수도 있습니다. SQL Server Data Tools에는 T-SQL에서 사용할 수있는 변수가 있습니다. –

답변

0

내가 할 수있는 유일한 방법은 동적 SQL 생성 (불행히도)입니다. 실제로 사용자가 원하는 방식으로 매개 변수 쿼리를 수행 할 수 없게하는 몇 가지 이유 (데이터베이스 엔진 관점)가 있습니다. 내 머리 꼭대기에 앉아있는 것 중 하나는 쿼리의 구문을 검증하는 것이 불가능하다는 것입니다. 실제로 존재하는 것을 참조하고 있는지는 알 수 없습니다.

다른 데이터베이스에 대해 동일한 SQL 집합을 실행할 수 있고 실제로이 SQL을 코드 (.NET/anything)에서 실행하는 경우에 대해 동일한 결과를 얻을 수 있습니다 연결 문자열에 대상 데이터베이스를 지정하여 결과를 얻습니다 (예 : [sql] 스크립트가 아니라 일부 외부 지점에서 데이터베이스를 설정 한 수준 변경).

+0

AlexS에 동의합니다. –

관련 문제