0

我有以下代码将 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

但...

  1. 它似乎没有添加tmpTable. 它给了我一个错误

    消息 102,级别 15,状态 1,第 1 行
    '.' 附近的语法不正确。

  2. 它不会添加插入命令说

    Msg 4834, Level 16, State 4, Line 8
    您没有使用批量加载语句的权限。

任何帮助都可以解决这两个错误!

更新

db 用户安全

4

2 回答 2

1

线

USE [websitehere.com].[dbo] 

应该说

USE [websitehere.com]

第二个错误应该通过为您的用户分配适当的权限或角色成员来修复。您需要 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 语句。

于 2012-10-26T14:33:16.250 回答
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!
于 2012-10-26T20:53:42.410 回答