Ich habe eine Tabelle mit dem Namen @ Tbl1, jede GROUP ist 1 Zeile und ich muss die Anzahl der Zeilen für jeden @ Tbl_Insert-Typ extrahieren.Einfügen in Tabelle mit String einfügen oder Tabelle Typ
Declare @Tbl1 Table (TableName NVARCHAR(250),ColumnName NVARCHAR(250),DataType NVARCHAR(250),DataValue NVARCHAR(250),InGroup NVARCHAR(250))
Declare @Tbl_Insert Table (ID INT, Name NVARCHAR(250), Age INT)
-- Sample Data
Insert Into @Tbl1 values ('@Tbl_Insert','ID','INT','1','Group1'),('@Tbl_Insert','Name','NVARCHAR(250)','John.Adam','Group1'),('@Tbl_Insert','Age','INT','10','Group1')
Insert Into @Tbl1 values ('@Tbl_Insert','ID','INT','2','Group2'),('@Tbl_Insert','Name','NVARCHAR(250)','Andy.Law','Group2'),('@Tbl_Insert','Age','INT','18','Group2')
kann I @ TBL1 konvertieren, indem Zeile in @Table_TEMP
Declare @Table_TEMP (Data nvarchar(max))
Insert Into @Table_TEMP
SELECT LEFT([DataValues] , LEN([DataValues])-1)
FROM @Tbl1 AS extern
CROSS APPLY
(
SELECT Concat('''', Replace(ISNULL([DataValue],''), '''','') + ''',')
FROM @Tbl1 AS intern
WHERE extern.InGroup = intern.InGroup
Order By InGroup, ColumnName
FOR XML PATH('')
) pre_trimmed ([DataValues])
GROUP BY InGroup, [DataValues]
Ich habe zu extrahieren, die Anzahl der Zeilen in @ Tbl1 (Or @Table_TEMP) zu @Tbl_Insert zu bringen.
Ich möchte den Cursor nicht als Schleife verwenden Zeile für Zeile in @Table_TEMP einfügen, weil, wenn Sie mit großen Daten (Beispiel> 10000 Zeilen) getroffen haben. Es ist zu langsam.
Bitte helfen.
Bitte lesen Sie [diese] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) für ein paar Tipps auf die Verbesserung Ihrer Frage. – HABO
Vielen Dank für Ihre Hilfe, ich habe nur die Frage für klar zu bearbeiten. –