2010-10-13 25 views
1

Pour un certain nombre de raisons, je dois utiliser un fichier csv lié dans une base de données sqlexpress. Col1 est toujours unique, bien que les données changent périodiquement, en fonction des connexions en cours.clé primaire dans csv lié en utilisant schema.ini en quelque sorte?

Existe-t-il un moyen de définir comme une clé primaire d'une certaine manière en utilisant le schéma.ini ou d'une autre manière?

Répondre

1

Vous ne pouvez pas avoir une clé primaire ou un autre index défini dans schema.ini. Vous ne pouvez pas non plus avoir une vue qui sélectionne toutes les données du serveur lié de manière audacieuse et qui définit un index unique car la vue doit être with schemabinding pour activer les index, ce qui n'est pas autorisé pour les objets inter-base de données.

La seule solution possible seems to be créer une fonction définie par l'utilisateur qui sélectionne toutes les données dans une table avec une clé primaire:

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; 

Une fonction table multi-étapes va tuer évidemment la performance, mais alors, combien de performance obtenez-vous lors de l'interrogation d'un fichier csv.

+0

Merci pour ces informations utiles – datatoo