I\'m trying to insert a CSV into a Temporary table and this SQL statement doesn\'t seem to work.
DECLARE @TempTable TABLE (FName nvarchar(max),SName nvarchar
You cannot use table variable when using BULK INSERT
You can try this
DECLARE @TempTable TABLE (FName nvarchar(max),SName nvarchar(max),
Email nvarchar(max));
INSERT INTO @TempTable
select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=C:\Users\Administrator\Dropbox\Personal\testing.vineup.com\admin\imported;HDR=Yes;FORMAT=Delimited(,)', 'SELECT * FROM [52BB30AD694A62A03E.csv]')
I think you want to do something like this:
DECLARE @sql NVARCHAR(8000)
SET @sql =
'
BULK INSERT #TempTable ...' ;
What you are doing is trying to force a variable into a non-dynamic sql statement. So the compiler/interpreter (not sure which is the correct term for SQL) is bombing out since it cannot properly parse it.
you can not use bulk insert for table variable. for that you have create temp table like below.
CREATE TABLE #TEMPtbl
(
[FNAME] [nvarchar](MAX) ,
[SNAME] [nvarchar](MAX) ,
[EMAIL] [nvarchar](MAX)
)
GO
BULK INSERT #TEMPtbl FROM 'C:\FileName.csv'
WITH (FIRSTROW = 1, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')
you can try This one. it may be help you.
You cannot BULK INSERT into a table variable. So this line:
BULK INSERT @TempTable
Is what is causing the error.
FYI, the simplest fix for this is probably just to use a #Temp table instead of a Table Variable. So your SQL code would change to this:
CREATE TABLE #TempTable (FName nvarchar(max),SName nvarchar(max),
Email nvarchar(max));
BULK INSERT #TempTable
FROM 'C:\52BB30AD694A62A03E.csv'
WITH (FIELDTERMINATOR = ',',ROWTERMINATOR = '\n')