标签: sql-server-2008-r2

数据库未显示在 Management Studio 中,但数据文件存在于 DATA 目录中

TL;DR 在我的本地 MSSql Express DATA 目录中具有数据文件的某些数据库不再出现在 Management Studio 中。

我在工作时的桌面上继承了一个开发环境,其中包括 MSSql Express 2008 实例。现在,我知道我可能已经对配置做了一些事情,但我一生都不记得做过任何可能产生我所看到的效果的事情。

我早上上班,发现一个应用程序出现一堆错误,说它无法连接到数据库。当我启动 Management Studio 检查发生了什么情况时,我再也看不到列出的数据库了。检查数据库的 DATA 目录、mdb 文件和日志文件是否都存在。

这是在 Windows 7 工作站上安装的 SQL Server Express 2008 r2 上的。

有人知道我可以做什么来恢复数据库吗?(是的,我对MSSql一无所知)

sql-server-2008-r2

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

如何从 SQL Server 2008 R2 架构中的一组表中进行 SELECT 和 UNION

我的 SQL Server 2008 R2 数据库中有一组表,所有表都具有相同的列。

我需要SELECTUNION这些桌子。我可以SELECT这样设置我想要的表:

SELECT TABLE_NAME FROM information_schema.tables
where (TABLE_NAME like '%_CH1' or TABLE_NAME like '%_CH0')
and TABLE_NAME not like '%test%'
Run Code Online (Sandbox Code Playgroud)

我现在需要的是SELECT Column1, Column2, Column3从该列表中的第一个人开始,UNION SELECT Column1, Column2, Column3从该列表中的下一个人开始,依此类推。

我怎么做?

t-sql sql-server-2008-r2

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

计算 SQL Server 2008 视图中跨列的特定值

我有以下数据:


   ID Column1 Column2 Column3 Column4 Column5
   001   A        C       D        A      B
   002   A        D       A        B      A
   003   B        K       Q        C      Q
   004   A        K       E        E      B
Run Code Online (Sandbox Code Playgroud)

我想在视图中创建一个新列,该列给出每行 5 个源列中“A”的计数。结果应该是这样的:

    ID Column1 Column2 Column3 Column4 Column5  SumOfA
    001   A        C       D        A      B       2
    002   A        D       A        B      A       3
    003   B        K       Q        C      Q       0
    004   A        K       E        E      B       1
Run Code Online (Sandbox Code Playgroud)

我在这里看到了几个示例,但它们返回跨记录的“A”实例 - 我想要跨列的“A”计数,而不是跨行聚合。有什么想法吗?

t-sql sql-server view count sql-server-2008-r2

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

循环遍历 SQL Server 表,为行运行存储过程,并将结果放入表中

我有一个 SQL Server 存储过程,用于获取员工几天内的上班时间。该过程使用卡代码值来获取有关员工的信息。

我想要做的是CardCodes从一个表中选择所有记录,然后循环运行存储过程的每条记录,然后使用每条记录的结果创建一个表。所以到最后将会有一张表记录每个员工的工作时间。

获取列表的查询CardCodes

SELECT     
    CardCode
FROM
    CHINA_VISION_PubCards
Run Code Online (Sandbox Code Playgroud)

会产生这样的列表。

007b7aaf
00cf77b6
00cf9200
00cf9f40
007B6FFB
00d398dd
00cf4673
Run Code Online (Sandbox Code Playgroud)

等等。

我可以像这样在 SQL Server 中运行存储过程。

EXEC [dbo].[getPast5DaysWorkedHours] @CardCode = N'007da097'
Run Code Online (Sandbox Code Playgroud)

007da097员工卡代码在哪里。

这会产生如下结果:

Employee Name | CardCode  |  Clock No  | Date   |  Seconds |  Time  
     Name       007da097      005718    2015.10.16  28761   07:59:21
     Name       007da097      005718    2015.10.21  28991   08:03:11
     Name       007da097      005718    2015.10.23  29768   08:16:08
     Name       007da097      005718    2015.10.28  29441   08:10:41
Run Code Online (Sandbox Code Playgroud)

重申一下我想要做的事情:我想循环遍历卡代码列表,并为每个卡代码运行带有值的存储过程cardCode。然后将每个过程调用的结果放入一张表中。

t-sql sql-server stored-procedures sql-server-2008-r2

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

在 SQL 中创建从 n 到 1 的范围


我需要创建一个从 1 到 n 的范围号。
例如,参数是@StartingValue

@StartingValue int = 96
Run Code Online (Sandbox Code Playgroud)

那么结果应该是:

Number
-------------
96
95
94
93
92
ff.
1
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?
谢谢。

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

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

从 C# 将参数传递到存储过程:将哪个 SQLDbType 用于 numeric(18, 0)

我在 SQL Server 中有一个存储过程,它有一个输出参数 pf type numeric(18,0)。我在 C# 中创建了一个SqlParameter带有 a 的对象SqlDbType.Decimal,并将精度设置为 18,小数位数设置为 0。

这是我的代码:

queryParameters[2] = new SqlParameter("@Id", SqlDbType.Decimal);
queryParameters[2].Precision = 18; // # digits
queryParameters[2].Scale = 0;      // # decimals
queryParameters[2].Direction = ParameterDirection.Output;
Run Code Online (Sandbox Code Playgroud)

存储过程正确执行,并正确返回输出参数,但是当我将其解析为 C# 中的 long 变量时,如下所示:

long id = (long)queryParameters[2].Value;
Run Code Online (Sandbox Code Playgroud)

它说无法转换它。

但如果我将SqlParameter类型修改为SqlDbType.Bigint,那么它就可以工作。

那么我通过将其传递为 所做的事情是正确的吗SqlDbType.BigInt?或者最好将其作为传递SqlDbType.Decimal,然后使用十进制 C# 变量而不是 long ?

将其传递SqlDbType.Decimal为然后执行以下操作也有效:

decimal id = (decimal)queryParameters[2].Value;
Run Code Online (Sandbox Code Playgroud)

那么,考虑到这个数字是没有小数的整数,最好采用什么方法呢?

c# sqldbtype sql-server-2008 sql-server-2008-r2 sqlparameter

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

表(字符串,字符串)是否需要索引?

在我在SQL Server 2008 R2上运行的数据库中,我有一个全局变量的特殊表:

CREATE TABLE global_variables
(
    name NVARCHAR(50),
    value NVARCHAR(50) NOT NULL
CONSTRAINT PK_global_variables PRIMARY KEY CLUSTERED
(
    name ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)

这样的表是否需要索引value

sql-server indexing sql-server-2008-r2

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

SQL Server 2008 Service Pack 2是否适用于SQL Server 2008 R2?

我一直在使用SQL Server 2008 R2进行开发.我注意到SQL Server 2008的Service Pack 2刚刚问世.但是,我在此处检查,Microsoft未提供指向SQL Server 2008 R2的任何Service Pack的链接.所以我不清楚我是否应该将他们的服务包应用于我的SQL Server 2008 R2实例.

我是否需要将某个版本的Service Pack 2应用于我的SQL Server 2008 R2实例?

谢谢.

sql servicepacks sql-server-2008 sql-server-2008-r2

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

SSIS 2008对行计数和脚本组件使用相同的变量

我有一个行计数组件,它使用全局变量X来存储数字; 到目前为止,它规则但是如果我在其ReadOnly变量中添加一个脚本组件,然后在其中使用它出于某种目的,流程会暂停一段时间然后崩溃说行数需要一个有效的变量.

是不是可以将行计数存储在变量中,然后从脚本comp中读取此变量.?

ssis etl sql-server-2008 sql-server-2008-r2 business-intelligence

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

将数据库从SQL Server 2008 R2实例导出到SQL Express 2008

我遇到了一个关于SQL Server上的导入/导出的问题.
我有一个关于在我的笔记本电脑上运行的SQL Server 2008 R2实例的数据库.

我想将它附加在Windows 2003服务器上运行的SQL Server Express 2008实例上.
由于我的服务器上没有管理工作室是否可以将数据库从SQL Server 2008 R2导出到SQL Express 2008实例?
依靠这个答案,我认为这是可能的.
但是当我想在目标设置上使用导入导出工具时,我应该选择目标配置.
我怎么能绕过这个?
我想知道是否可以使用导入/导出工具将R2架构数据移动到SQL Server 2008 express?如果是,我认为它为我们生成脚本,我没有在服务器上的管理工作室.是否可以在我的系统上运行的管理工作室上执行生成的脚本,然后将MDF文件移动到服务器?

PS:我应该在DBA上问这个问题吗?

sql-server sql-server-express sql-server-2008-r2

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