标签: sql-server

不支持批量插入

我有一个文本文件,我想将其插入到数据库的表中。

我的查询如下所示:

BULK INSERT myDepartment
FROM 'C:\myDepartment-c-t.txt'
WITH (
  DATAFILETYPE = 'char',
  FIELDTERMINATOR = '\t', -- default terminator
  ROWTERMINATOR = '\n'
);
Run Code Online (Sandbox Code Playgroud)

在执行它时,SQL Server Management Studio 2008 给出以下错误:

BULK INSERT myDepartment
FROM 'C:\myDepartment-c-t.txt'
WITH (
  DATAFILETYPE = 'char',
  FIELDTERMINATOR = '\t', -- default terminator
  ROWTERMINATOR = '\n'
);
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索,发现 SQL Server 2008确实支持BULK INSERT. 谁能告诉我我错过了什么?

sql-server azure-sql-database bulk-insert

1
推荐指数
1
解决办法
3111
查看次数

SQL 代理作业的历史记录 (SQL Server 2005)

  • 我怎样才能看到来自 的所有可用记录SQL Agent Jobs,因为SSMS只显示减少的记录数
  • 这些记录是否存储在system databases, 不仅是普通的log files
  • 如何获取仅由 SQL 代理作业生成的记录
  • 这个历史可以设置吗

在此处输入图片说明在此处输入图片说明

sql-server-2005 sql-server

1
推荐指数
1
解决办法
525
查看次数

在事务进行时收缩事务日志

我有几个 GB 的导入到我的 SQL Server 2005(标准版)数据库中。

导入分为 4 个部分,每个部分在自己的事务中。

您可以猜到,事务日志文件非常大。我磁盘上的空间也有限,但应该适合数据。导入时,磁盘上的可用空间约为 2 GB。

在我的交易正在进行时缩小文件是否有效?也会有影响吗?

sql-server-2005 sql-server shrink transaction transaction-log

1
推荐指数
1
解决办法
4965
查看次数

如何选择具有最大和最小计数的行?

我在 SQL Server 2012 中有下表:

CREATE TABLE [MyTable] (
    [Id] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY DEFAULT NEWID(),
    [MyGroup] INT NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

我想输出表格的表格

    | MyGroup | Count
Max |         |
Min |         |
Run Code Online (Sandbox Code Playgroud)

例如,如果我30在MyTable的行,其中MyGroup的= 120行,其中MyGroup的= 2,和10行,其中MyGroup的= 3,然后

    | MyGroup | Count
Max | 1       | 30
Min | 3       | 10
Run Code Online (Sandbox Code Playgroud)

什么样的查询会输出这些信息?

sql-server aggregate count sql-server-2012

1
推荐指数
2
解决办法
1万
查看次数

SQL Server 2008 R2 中的偷偷回滚

是否可以在 SQL Server 2008 R2 中回滚一整套已提交的事务而无需任何通知或日志记录?

本周末,我们在 HA 集群 SQL Server 2008 R2 环境中显然回滚了一组数据。数据存在,现在不存在。SQL Server 错误日志中没有任何内容,群集日志中也没有任何内容。最初加载数据的 SQL Server 代理作业成功运行(包括从进程本身发送的进度电子邮件)。

唯一没有回滚的是批量插入的数据。数据库设置为完全恢复,因此批量插入的数据也应该回滚,对吗?

很抱歉缺乏细节,但我真的很难过。甚至想不出还有什么地方可以看。

sql-server sql-server-2008-r2 transaction-log

1
推荐指数
1
解决办法
707
查看次数

每天每分钟运行一次作业,特定时间除外

我有一个 Sql server 2012 代理作业,它目前每分钟、每天等运行一次。

我想修改它,使其每天每分钟运行一次,星期六晚上 7:00 到 11:30 除外。作业调度程序可以做到这一点吗?

我尝试使用每日频率,我可以通过这种方式每天更改时间,但不能更改特定日期。

当前时间表:

在此处输入图片说明

sql-server sql-server-2012 sql-server-agent

1
推荐指数
1
解决办法
2万
查看次数

NOT IN 用于解析 CSV

我正在尝试传递要在NOT IN操作中使用的项目数组:

ALTER FUNCTION [dbo].[fnTEST] (@CODES VARCHAR)
RETURNS TABLE 
AS
RETURN 
(
    SELECT
        T1.CODE AS 'CODE',
    (SELECT COUNT(*)
        FROM TABLE1 AS T2 WITH (NOLOCK)
        WHERE T2.CODE NOT IN (@CODES)
    ) AS 'COUNT'
    FROM TABLE1 T1 WITH (NOLOCK)
)
Run Code Online (Sandbox Code Playgroud)

然后我这样称呼它:

SELECT * FROM fnTEST ('500,250,202,900,204,200,300,400,600,800')
Run Code Online (Sandbox Code Playgroud)

那行不通。如果我尝试在没有引号的情况下调用它,则会收到参数过多的错误(这是预期的)。

有解决方案吗?

sql-server t-sql functions

1
推荐指数
1
解决办法
235
查看次数

恢复数据库 - 维护计划任务

我需要安排一个每周从备份中恢复数据库的任务。我已经设置了用于备份数据库的维护计划(管理 > 维护计划),但无法找到如何执行还原任务 - 这是否需要是执行 T-SQL 语句任务,或者是否有工具箱项目?

sql-server restore maintenance-plans

1
推荐指数
1
解决办法
5977
查看次数

如何将数据从数据库卸载到平面文件?

我知道批量插入的概念,其中我将数据从平面文件加载到数据库。

现在我想将表中的数据卸载到平面文件,即我想将表中的数据导出到平面文件。谁能告诉我如何做到这一点?

我正在使用 SQL Server 2008 R2。

sql-server sql-server-2008-r2

1
推荐指数
1
解决办法
6414
查看次数

AWE 内存使用量随着 SQL Server 2012 的增长而增长

我在 Windows 2008 R2 x64 机器上安装 SQL Server 2012 时遇到问题。

因为我的记忆似乎正在迅速消失(根据任务管理器图),但我看不到任何程序在使用它,所以我下载了 RAMMap 以更好地了解正在发生的事情。原来我所有的记忆都被 AWE 吞噬了。

我的内存很快就被 SQL Server 吃掉了,达到我允许实例拥有的最大值(当前为 3GB)。

然而,当我尝试研究这个时,每个人似乎都说 SQL Server 2012 64 位系统没有启用 AWE,因为它不需要;AWE 启用的扩展内存可直接访问。但是系统仍然会很高兴地在 AWE 中咀嚼内存,直到达到极限。

不知道还有哪些其他信息可以帮助诊断这一点……或者即使我完全误解了某些东西……我现在对此的了解已达到极限。请不要假设我有很多知识......虽然我通常精通技术,但我绝对不是 DBA。

  • SQL 服务器的最大内存设置为 3GB。
  • 服务器上的物理内存为 10GB。
  • 我不能再给 SQL Server 分配更多内存了——我有一台占用 4GB 空间的虚拟机、Visual Studio、Outlook、IIS 等。
  • 有点不寻常的是,它并没有真正用作服务器,而是用作开发机器,因此数据库工作负载往往很轻(尽管我说没有任何硬性指标)。

sql-server memory sql-server-2012

1
推荐指数
1
解决办法
1万
查看次数