小编R-C*_*R-C的帖子

检查索引碎片时'(''附近的语法不正确

我正在尝试使用SQL 2008 R2检查数据库中的索引碎片.

我正在使用以下代码,取自http://msdn.microsoft.com/en-gb/library/ms189858(v=sql.100).aspx,并进行了几处名称更改:

USE StockSystem;
GO
SELECT a.index_id, name, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID(N'dbo.StockItems'),NULL, NULL, NULL) AS a
JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id;
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到错误:

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '('.
Run Code Online (Sandbox Code Playgroud)

谁能发现我哪里出错?

UPDATE

奇怪的是,如果我调用两个函数(DB_ID和OBJECT_ID)并获取值,然后替换主select语句中的值,一切正常.根据MSDN,我为什么不能在SELECT中使用这两个函数呢?

UPDATE

为了回应Akrem的sugegstion,我也试过这个,但得到了同样的错误.

USE StockSystem;
GO
SELECT a.index_id, name, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID('StockSystem'), OBJECT_ID(N'dbo.StockItems'), NULL, NULL, NULL) AS a
JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id; …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2008

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

查找字符串中最后一位数的正则表达式是什么?

我的大脑必须疲惫不堪,但我不能让它工作,我对正则表达式的经验很少.

我有一个字符串,如"gfdsgfd354gfdgfd55gfdgfdgfs9gfdgsf".

我需要一个正则表达式来查找字符串中的最后一位数字 - 在本例中为"9".

编辑

我应该更清楚,但正如我所说,我已经疲惫不堪.

它是在最后一位数字之前插入一个连字符.我正在使用C#Regex.Replace.使用Dave Sexton已经提出的想法,我尝试了以下但没有成功:

    private string InsertFinalDigitHyphen(string data)
    {
        return Regex.Replace(data, @"(\d)[^\d]*$", " $1");
    }
Run Code Online (Sandbox Code Playgroud)

有了这个,我可以处理"ABCDE1FGH",意图获得"ABCDE-1FGH"但我实际得到"ABCDE-1".

c# regex

3
推荐指数
2
解决办法
4881
查看次数

标签 统计

c# ×1

regex ×1

sql ×1

sql-server ×1

sql-server-2008 ×1

t-sql ×1