标签: sql-server-2005

如何确定工作状态?

我有一个存储过程来安排工作.这项工作需要很长时间才能完成(大约30到40分钟).我需要了解这份工作的状态.以下细节对我有帮助

1)如何查看已安排在未来时间但尚未开始的所有作业的列表

2)如何查看正在运行的作业列表以及它们运行时的时间跨度

3)如何查看作业是否已成功完成或由于任何错误而在两者之间停止.

sql t-sql stored-procedures sql-server-2005

43
推荐指数
5
解决办法
17万
查看次数

43
推荐指数
3
解决办法
7万
查看次数

用t-sql计算时间跨度

给出两个日期/时间:

@start_date = '2009-04-15 10:24:00.000'
@end_date = '2009-04-16 19:43:01.000'
Run Code Online (Sandbox Code Playgroud)

是否可以按以下格式计算两个日期之间的时间

1d 9h 19m

t-sql sql-server-2005

43
推荐指数
3
解决办法
6万
查看次数

还原SQL Server 2005数据库后,将所有用户链接到登录

(注意这个问题询问关于链接所有用户,不同于要求链接单个用户的可能重复)

我希望在两台服务器之间移动一个数据库,我已经从第一台服务器上备份了数据库并在第二台服务器上完成了数据库恢复,到目前为止一直很好.

但是,我们的应用程序使用了数据库中定义的大量数据库用户.这些必须链接到master数据库中定义的登录.我已恢复数据库的服务器已定义所有登录,但它们具有不同的sid.

我不是T-SQL专家......

我认为sp_change_users_login是解决方案的一部分,但我无法找到如何让它自动将已恢复数据库中的所有用户链接到同名的登录名.

我们用于应用程序的数据库创建脚本创建用户和登录,但是在创建登录时它没有指定SID,因此出现此问题.现在如果我有时间机器......

(当我谷歌我得到很多点击,但他们大多是网站,不会让你看到答案,而不必先在网站上注册.)

t-sql sql-server sql-server-2005

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

用于查找缺失序列号的SQL查询

我有一个名为的专栏sequence.此列中的数据类似于1,2,3,4,5,7,9,10,15.

我需要从表中找到丢失的序列号.什么SQL查询将从我的表中找到丢失的序列号?我期待结果如

Missing numbers
---------------
6  
8  
11  
12  
13  
14  
Run Code Online (Sandbox Code Playgroud)

我只使用一张桌子.我尝试了下面的查询,但没有得到我想要的结果.

select de.sequence + 1 as sequence from dataentry as de 
left outer join dataentry as de1 on de.sequence + 1 = de1.sequence
where de1.sequence is null  order by sequence asc;
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 gaps-and-islands

43
推荐指数
4
解决办法
8万
查看次数

带有聚合函数的SQL GROUP BY CASE语句

我有一个看起来像这样的列:

CASE
    WHEN col1 > col2 THEN SUM(col3*col4)
    ELSE 0
END AS some_product
Run Code Online (Sandbox Code Playgroud)

我想把它放在我的GROUP BY子句中,但这似乎会导致问题,因为列中有一个聚合函数.是否有一种方法可以将GROUP BY作为列别名,例如some_product在这种情况下,或者我是否需要将其放在子查询和组中?

sql sql-server group-by sql-server-2005

43
推荐指数
4
解决办法
20万
查看次数

C#中SQL Server的Numeric的等效数据类型是什么

在SQL Server中我们可以编写数据AS Numeric(15,10)..在C#中它的等价物是什么?

我知道这Numeric相当于Decimal但如何代表Numeric(15,10)

c# sql-server-2005

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

使用SQL Server数据库中的脚本删除主键

我需要删除StudentSQL Server数据库中表的主键.

我已经在表格中编辑了,我得到的脚本是

ALTER TABLE dbo.Student
    DROP CONSTRAINT PK__Student__9CC368536561EF8B
Run Code Online (Sandbox Code Playgroud)

但是当我在SQL Server查询浏览器中运行此脚本以删除主键时

它显示了该消息

Msg 3728,Level 16,State 1,Line
1'PK__Student__9CC368536561EF8B'不是约束.
Msg 3727,Level 16,State 0,Line 1

令我担心的是,我认为PK__Student__9CC368536561EF8B这将随机生成,请帮助我使用脚本删除主键约束.

提前致谢

sql-server sql-server-2005 sql-server-2008

43
推荐指数
3
解决办法
13万
查看次数

如何在SQL Server的where子句中使用别名列名

当我尝试在SQL Server 2005中执行以下代码时,我收到错误

列名称DistanceFromAddress无效

码:

select 
    SQRT(POWER(cast(Program_Latitude as float) - cast('41.5126237' as float), 2) +   
    POWER(cast(Program_Longitude as float) - cast('-81.6516411' as float), 2)) * 62.1371192 AS DistanceFromAddress 
from 
    tblProgram 
where 
    DistanceFromAddress < 2
Run Code Online (Sandbox Code Playgroud)

我正在使用select语句正确获取值,但是当我尝试检查条件时,where DistanceFromAddress < 2我收到错误.

我该如何解决这个问题?

sql-server-2005

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

RAISERROR()的语法含义是什么

我刚刚创建了一个After After Trigger,其语法如下:

Create trigger tgrInsteadTrigger on copytableto
Instead of Insert as 
    Declare @store_name varchar(30);
    declare @sales int;
    declare @date datetime;

    select @store_name = i.store_name from inserted i
    select @sales = i.sales from inserted i
    select @date = i.Date from inserted i
begin
    if (@sales > 1000)
        begin
        RAISERROR('Cannot Insert where salary > 1000',16,1); ROLLBACK;
        end
    else
        begin
        insert into copytablefrom(store_name, sales, date) values (@store_name, @sales, @date);
        Print 'Instead After Trigger Executed';
        end
End
Run Code Online (Sandbox Code Playgroud)

在我使用的上述语法中 RAISERROR('Cannot Insert where salary > …

sql database sql-server-2005 sql-server-2008 sql-server-2008-r2

43
推荐指数
5
解决办法
17万
查看次数