Chcę zapisać plik w zdalnej bazie danych z lokalnego komputera, na którym znajduje się plik. Chcę to osiągnąć za pomocą polecenia BCP. Jak można to osiągnąć?
Moje zapytanie jest podobne do poniższego:
INSERT INTO ExcelFileUploadedData(
Project,
SubProject,
LogicalName,FileName,
FileData)
SELECT
'Sample',
'Sample',
'BP',
'1.xls',
*
FROM OPENROWSET(BULK N'D:\File\File1.xls.zip', SINGLE_BLOB) rs
0
Akanksha
19 grudzień 2019, 17:01
Wydaje się, że jest to właściwa składnia zakładając, że chcesz po prostu przechowywać plik binarny w polu varbinary(max) o nazwie „FileData”. Jaki błąd otrzymujesz?
– Josh Jay
19 grudzień 2019, 17:38
Nie sądzę, że można to osiągnąć, ponieważ ładowanie BULK przy użyciu OPENROWSET wymaga pliku na lokalnym serwerze bazy danych.
– PeterHe
19 grudzień 2019, 17:52
1 odpowiedź
Możesz tego spróbować
SET @TableQuery='CREATE TABLE [temp1](
[Id] [int] IDENTITY(1,1) NOT NULL,
Project [NVARCHAR(50)],
SubProject [NVARCHAR(50)],
LogicalName [NVARCHAR(50)],
FileName [NVARCHAR(50)],
FileData [NVARCHAR(50)],
CONSTRAINT [PK_temp1] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
'
EXEC(@TableQuery)
DECLARE @params NVARCHAR(max)
SET @params = N'@uploadData SINGLE_BLOB readonly'
SET @BulkInsertQuery =N'INSERT INTO [temp1] ( Project, SubProject,LogicalName,FileName,FileData)
select * from @uploadData';
print @BulkInsertQuery
EXEC sp_executesql @BulkInsertQuery, @params, @uploadData
// Enter Records from temp table into real table
INSERT INTO ExcelFileUploadedData(
Project,
SubProject,
LogicalName,FileName,
FileData)
SELECT
'Sample',
'Sample',
'BP',
'1.xls',
*
FROM [temp1]
0
Rajan Mishra
19 grudzień 2019, 17:48
Podobne pytania
Nowe pytania
sql-server
Microsoft SQL Server to system zarządzania relacyjnymi bazami danych (RDBMS). Użyj tego tagu dla wszystkich wersji SQL Server, w tym Compact, Express, Azure, Fast-track, APS (dawniej PDW) i Azure SQL DW. Nie używaj tego tagu dla innych typów DBMS (MySQL, PostgreSQL, Oracle itp.). Nie używaj tego tagu w przypadku problemów z oprogramowaniem i programowaniem mobilnym, chyba że jest on bezpośrednio powiązany z bazą danych.