Единственный способ, которым вы действительно можете это сделать, - использовать Dynamic SQL или ввести их все. Поскольку вы не хотите делать последнее, это оставляет вас с первым. Обратите внимание, что ниже приведен пример, вам нужно изменить нижеприведенное для ваших собственных нужд, однако это должно привести вас на правильный путь.
USE Sandbox;
GO
CREATE TABLE Customer (ID int IDENTITY(1,1),
[Name] varchar(50));
CREATE TABLE Item (ID int IDENTITY(1,1),
[Name] varchar(50));
CREATE TABLE CustomerOrder (ID int IDENTITY(1,1),
ItemID int,
CustomerID int);
GO
INSERT INTO Customer ([Name])
VALUES ('Joe Bloggs'),('Jayne Smith');
INSERT INTO Item ([Name])
VALUES ('Spanner'),('Saw'),('Screwdriver');
INSERT INTO CustomerOrder (ItemID, CustomerID)
VALUES (1,1),(3,1),(3,1),(2,2),(3,2);
GO
SELECT *
FROM Customer C
JOIN CustomerOrder CO ON C.ID = CO.CustomerID
JOIN Item I ON CO.ItemID = I.ID;
GO
DECLARE @SQL nvarchar(MAX);
SET @SQL = N'SELECT ' +
STUFF((SELECT N',' + NCHAR(10) + N' ' + QUOTENAME(t.[name]) + N'.' + QUOTENAME(c.[name]) + N' AS ' + QUOTENAME(t.[name] + N'.' + c.[name])
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
WHERE t.[name] IN (N'Customer',N'Item',N'CustomerOrder')
FOR XML PATH(N'')),1,9,N'') + NCHAR(10) +
N'FROM Customer' + NCHAR(10) +
N' JOIN CustomerOrder ON Customer.ID = CustomerOrder.CustomerID' + NCHAR(10) +
N' JOIN Item ON CustomerOrder.ItemID = Item.ID;';
PRINT @SQL; --Your best friend
--SELECT @SQL; --your other best friend, as I'd guess @SQL is actually going to have more than 4000 characters and PRINT can't handle that
EXEC sp_executesql @SQL;
GO
DROP TABLE Customer;
DROP TABLE Item;
DROP TABLE CustomerOrder;
GO