SQL Server:添加可编程的CSV

SQL Server:添加可编程的CSV,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有以下代码将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

我有以下代码将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
    。这给了我一个错误

    味精102,第15级,状态1,第1行
    “.”附近的语法不正确

  • 它不会添加insert命令

    Msg 4834,第16级,第4状态,第8行
    您没有使用批量加载语句的权限

  • 处理这两个错误会有很大帮助

    更新

    这条线

    USE [websitehere.com].[dbo] 
    
    应该说

    USE [websitehere.com]
    
    第二个错误应该通过为用户分配propper权限或角色成员身份来修复。您需要插入和管理批量操作权限。可能更多,这取决于大容量插入语句可能具有的其他选项

    您可能希望使用某个测试用户帐户尝试此操作:

    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”身份登录并尝试运行您的批量插入语句。

    Ah找到了我需要授予访问权限才能使用它的地方

    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!
    


    我是数据库管理员。如何检查这些权限?如果您是数据库管理员,为什么不使用一个足够强大的帐户?无论如何,在对象资源管理器中转到用户对象,查找用户对相关表和服务器的权限。已解决!不过,谢谢你的帮助!