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. そう言って挿入コマンドを追加しません

    メッセージ 4834、レベル 16、状態 4、行 8
    バルク ロード ステートメントを使用する権限がありません。

これらの 2 つのエラーを解決するには、どんな助けも役に立ちます。

アップデート

データベース ユーザー セキュリティ

4

2 に答える 2

1

この線

USE [websitehere.com].[dbo] 

言うべき

USE [websitehere.com]

2 番目のエラーは、ユーザーに適切なアクセス許可またはロール メンバーシップを割り当てることで修正する必要があります。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 に答える