Нельзя иметь первичный ключ или любой другой индекс, определенный в schema.ini.
Вы также не можете иметь представление, которое смело выбирает все данные со связанного сервера и определяет уникальный индекс для него, потому что представление должно быть with schemabinding
, чтобы включить индексы, и это не разрешено для объектов между базами данных.
Единственное возможное решение представляется созданием пользовательской функции, которая выбирает все данные в таблицу с первичным ключом:
create function dbo.csv_primary()
returns @result table (col1 int not null primary key, col2 varchar(255))
as
begin
insert into @result(col1, col2)
select col1, col2 from CSVServer.[folder]..[file#csv];
return;
end;
Многошаговая таблично-значная функция, очевидно, снизит производительность, но при этом, какую производительность вы получите при обращении к CSV-файлу.