SQL Server에서 다른 데이터베이스의 테이블 이름을 바꾸는 방법이 있습니까? 현재 데이터베이스에 있고 TEMP 테이블의 다른 데이터베이스로 데이터를 마이그레이션 한 다음 해당 데이터베이스의 TEMP 테이블 이름을 바꾸는 경우. 데이터베이스 이름이 다른 서버에서 변경 될 수 있으므로 "USE [database]"를 사용하고 싶지 않습니다.
미리 도움을 주셔서 감사합니다!
SQL Server에서 다른 데이터베이스의 테이블 이름을 바꾸는 방법이 있습니까? 현재 데이터베이스에 있고 TEMP 테이블의 다른 데이터베이스로 데이터를 마이그레이션 한 다음 해당 데이터베이스의 TEMP 테이블 이름을 바꾸는 경우. 데이터베이스 이름이 다른 서버에서 변경 될 수 있으므로 "USE [database]"를 사용하고 싶지 않습니다.
미리 도움을 주셔서 감사합니다!
답변:
동적 SQL 사용
USE MyDB1
GO
DECLARE @db_name NVARCHAR(20) = 'myDB2'
DECLARE @sql NVARCHAR(1000)
SET @sql = N'EXEC '+ quotename(@db_name)+ '..sp_rename ''[MyTable]'', ''[YourTable]'';';
PRINT @sql;
EXEC SP_EXECUTESQL @sql;
또는 EXEC에서 데이터베이스를 지정하여 :
USE MyDB1
GO
EXEC MyDB2..sp_rename 'MyTable', 'YourTable'
http://www.sqlservercentral.com/Forums/Topic931229-1292-1.aspx에 명시된 바와 같이
MyDB2..sp_rename
훨씬 간단합니다!