J'utilise OPENROWSET
pour importer un fichier .csv
dans SQL Server 2014.SQL Server: Insérer un enregistrement si introuvable dans la table d'une fonction Sélectionnez
Ceci est ma requête
SELECT
ufnGetChargeTypeId([Charge Type]) AS ChargeTypeId, [Description]
FROM
OPENROWSET ('MSDASQL',
'Driver={Microsoft Access Text Driver (*.txt, *.csv)}; DBQ=D:\Files\;',
'SELECT * from [myfile.csv]')
[Charge Type]
est la colonne en-tête dans le fichier .csv
. ufnGetChargeTypeId
est une fonction qui renvoie ChargeTypeId
si elle se trouve dans le tableau ChargeType
qui est une table de référence. Fonctionnement correct si [Charge Type]
existe. Je veux insérer [Charge Type]
dans la table si non trouvé et retourner ChargeTypeId
. Les fonctions définies par l'utilisateur ne prennent pas en charge INSERT/UPDATE dans la table.
Une solution consiste à utiliser une procédure stockée mais j'appelle la fonction dans l'instruction Select
et vous ne pouvez pas exécuter la procédure stockée dans l'instruction Select
.
Suggérez-vous une solution à mon problème.
Dump à une table de mise en scène, puis faire des comparaisons – TheGameiswar