Ich weiß, das ist schmutzig, aber ist es eine Möglichkeit, csv Daten zu senden (Wagenrücklauf getrennt) in genau diesem Format:Senden csv Daten gespeicherte Prozedur und Einfügen in #temp Tabelle
1,2,"Bla1"
3,4,"Bla2"
auf eine gespeicherte Prozedur und fügen Sie es in eine #temp-Tabelle ein.
Skeleton:
IF EXISTS (SELECT *
FROM sys.objects
WHERE type = 'P' AND name = 'USP_Test')
DROP PROCEDURE USP_Test
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE USP_Test
@CsvData NVARCHAR(MAX)
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #Temp
(
Number1 FLOAT,
Number2 FLOAT,
String NVARCHAR(255)
)
-- insert @CsvData into #Temp
END
Ich mag Tabellenwertparameter für diese Art von Szenario, aber ich kann steuern, nur dass ein nvarchar
gesendet wird.
Mögliche Duplikat [Read String mit Komma und fügen Sie in SQL-Tabelle einreihige] (http://stackoverflow.com/questions/37404919/read-string-with- comma-and-insert-in-sql-table-single-row) –
Es gibt einen Weg, aber Sie müssen mit der Eingabe besonders vorsichtig sein. zumindest weißt du, dass es dreckig ist ... –
Was passiert mit der letzten Spalte, wenn ein Zitat im Feldwert steht? Verdoppelt sich das? 1,2, "Joe" "Die peinliche" "Bloggs" –