标签: sql-server

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万
查看次数

查找缺失的索引

可用于在 mssql 2008 中查找缺失索引的工具?我们可以使用数据库引擎优化顾问找到丢失的索引吗

index sql-server-2008 sql-server

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

在我不知情的情况下更改了列的序数位置

我有一个乱序的列(通常,不是在 select 语句方面),我只是不知道它是如何变成那样的。

我一直在研究这个很长一段时间,结果是空的。我也无法在测试中重现它。

我已经通知开发人员,他们不允许运行未明确命名列的查询,正是出于这个原因。

然而,与此同时,我不知道我们是如何走到这种地步的,这让我很抓狂。

sql-server

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

无法收缩事务日志

这里有点令人头疼。

我有一个数据少于 1GB 的数据库,但有一个 40GB 的日志文件。事务日志每天备份,这个数据库没有很多活动;大约每周一次,它记录新的工资单信息,然后为报告目的反刍这些数据。数据库设置为自动收缩。

运行sp_spaceused @updateusage = true产生以下信息:

database_name   database_size   unallocated space
PayrollImports  39412.06 MB 105.00 MB

reserved    data    index_size  unused
321728 KB   278640 KB   42816 KB    272 KB
Run Code Online (Sandbox Code Playgroud)

运行DBCC shrinkfile (N'PayrollImports_log', 1 , notruncate)产生以下结果:

DbId    FileId  CurrentSize MinimumSize UsedPages   EstimatedPages
19  2   4991088 3456    4991088 3456
Run Code Online (Sandbox Code Playgroud)

...之间的差异UsedPagesEstimatedPages被神秘,但我继续DBCC shrinkfile (N'PayrollImports_log', 1 , truncateonly),并得到:

DbId    FileId  CurrentSize MinimumSize UsedPages   EstimatedPages
19  2   4991088 3456    4991088 3456
Run Code Online (Sandbox Code Playgroud)

在这一点上没有任何改变。日志文件仍然是 40GB。所以我想,也许我有一些公开的交易。运行dbcc …

sql-server-2005 sql-server maintenance transaction-log

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

SQL Server 在什么情况下对 tempdb 进行加密?

何时使用透明数据加密对 tempdb 进行加密?什么配置等导致 tempdb 以这种方式加密?

sql-server encryption tempdb transparent-data-encryption

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

嵌套 - 关键字“WITH”附近的语法不正确

与内与

还行吧

    WITH CS AS (
      SELECT      'ab' as a
    )
    SELECT * from cs
Run Code Online (Sandbox Code Playgroud)

http://data.stackexchange.com/mathematics/revision/138658/170321/comment-partition-by-question

但是,一旦我用第二个包裹它with

with PS as (
        WITH CS AS (
          SELECT      'ab' as a
        )
        SELECT * from cs
        ) select * from PS
Run Code Online (Sandbox Code Playgroud)

我收到这个错误,

Incorrect syntax near the keyword 'WITH'. Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon. …

sql-server

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

查询完成后断开连接的 SSMS 命令

在 SQL Server Management Studio 中,是否有任何方法(例如 SQLCMD 命令或其他东西)让 SQL 脚本窗口在查询执行完成后立即自动断开连接?

sql-server ssms

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