первичный ключ в связанном CSV, используя schema.ini как-нибудь? - PullRequest
1 голос
/ 14 октября 2010

По ряду причин я должен использовать связанный CSV-файл в базе данных sqlexpress.Col1 всегда уникален, хотя данные периодически изменяются в зависимости от текущих входов в систему.

Есть ли способ каким-либо образом установить в качестве первичного ключа, используя schema.ini или другим способом?

1 Ответ

1 голос
/ 12 июня 2011

Нельзя иметь первичный ключ или любой другой индекс, определенный в 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-файлу.

...