由于多种原因,我必须在sqlexpress数据库中使用链接的csv文件。 尽管数据会根据当前登录情况定期更改,但Col1始终是唯一的。
有没有办法使用schema.ini或其他方式以某种方式设置为主键?
答案 0 :(得分:1)
您不能在schema.ini中定义主键或任何其他索引。
您也不能拥有一个大胆选择链接服务器中所有数据并在其上定义唯一索引的视图,因为视图必须是with schemabinding
才能启用索引,并且跨数据库不允许这样做对象。
唯一可能的解决方案seems to be创建一个用户定义的函数,该函数使用主键选择所有数据到表中:
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文件时会获得多少性能。