You will need to use dynamic SQL. You should also not use 'single quotes'column aliases to distinguish between aliases; This syntax is deprecated. You should use [square brackets]or "double quotes"(the former is usually preferred).
DECLARE @sql NVARCHAR(MAX), @TGT SYSNAME;
SET @TGT = N'[TESTSERVER]';
SET @sql = N'INSERT INTO [sds].[dbo].[Team_Email_Addresses]
SELECT [class] AS [Team number] ,
[description] AS [Team name] ,
[DutyEmail] AS [Team email address]
FROM ' + @TGT + '.[cases].[dbo].[sp_class]
WHERE [status] = 1;';
PRINT @sql;
EXEC sp_executesql @sql;
( , .)
, , , - . dev:
CREATE SYNONYM dbo.sp_class FOR DEVSERVER.cases.dbo.sp_class;
:
CREATE SYNONYM dbo.sp_class FOR TESTSERVER.cases.dbo.sp_class;
:
INSERT INTO [sds].[dbo].[Team_Email_Addresses]
SELECT [class],
[description],
[DutyEmail]
FROM [dbo].[sp_class]
WHERE [status] = 1;
, , SQL Server 2005 . SQL Server, !