我有以下代码将CSV文件插入临时表:
USE [websitehere.com].[dbo]
GO
CREATE TABLE [websitehere.com].[dbo].[tmpTable]
(ID INT,
Caller_Number VARCHAR(100),
Caller_Name VARCHAR(100),
GroupBy VARCHAR(100),
Campaign_Name VARCHAR(100),
DateAndTime VARCHAR(100),
Duration VARCHAR(100),
Call_Status VARCHAR(100))
GO;
BULK
INSERT tmpTable
FROM 'C:\Users\namehere\Documents\CallLog.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
但是...
似乎没有添加tmpTable
。它给了我一个错误
Msg 102,Level 15,State 1,Line 1
附近的语法不正确
'。'。
它不会添加说明
的插入命令Msg 4834,Level 16,State 4,Line 8
您无权使用批量加载语句。
任何帮助都可以很好地处理这两个错误!
更新
答案 0 :(得分:1)
该行
USE [websitehere.com].[dbo]
应该说
USE [websitehere.com]
第二个错误应该通过为您的用户分配propper权限或角色成员来解决。您需要INSERT和ADMINISTER BULK OPERATIONS权限。可能更多,具体取决于您的批量插入语句可能具有的其他选项。
您可能希望尝试使用某个测试用户帐户:
USE master;
GO
CREATE LOGIN bulkuser WITH PASSWORD = 'P@ssw0rd';
GRANT ADMINISTER BULK OPERATIONS to bulkuser;
USE [websitehere.com]
GO
CREATE USER bulkuser FOR LOGIN bulkuser;
EXEC sp_addrolemember 'db_datareader', 'bulkuser'
GRANT INSERT ON [dbo].[tmpTable] TO bulkuser;
然后以“bulkuser”身份登录并尝试运行BULK INSERT语句。
答案 1 :(得分:0)
啊找到我需要授予权限才能使用它的地方!
Right-click on your database table >
properties >
select Permissions from the left panel >
click the blue link "View server permissions" >
check "Grant" for "Administer bulk operations" >
Ok > Ok > Done!