标签: sql-server-2005

比较T-SQL中的日期,忽略时间部分

我正在使用MS SQL 2005,我想检查两个日期是否相等,但忽略了时间部分.

我知道我可以使用DATEDIFF,但我担心它可能会很慢 - 这个SP在DB中被大量使用!

有什么建议?

编辑:大卫安德烈斯的评论:

"比较"不仅包括"平等"
让我意识到我没有让我的问题足够清楚 - 我实际上只是在检查是否平等,就是这样.

sql t-sql sql-server sql-server-2005

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

T-SQL子串 - 最后3个字符

使用T-SQL,我将如何获取varchar列的最后3个字符?

所以列文本是IDS_ENUM_Change_262147_190我需要的190

sql t-sql sql-server sql-server-2005

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

更改SQL Server函数以接受新的可选参数

我已经在SQL Server 2005中有一个函数:

ALTER function [dbo].[fCalculateEstimateDate] (@vWorkOrderID numeric)
Returns varchar(100)  AS
Begin
  <Function Body>
End
Run Code Online (Sandbox Code Playgroud)

我想修改此函数以接受另外的可选参数@ToDate.我将在函数中添加逻辑,如果@Todate提供,那么继续使用现有代码执行其他操作.

我将功能修改为:

ALTER function [dbo].[fCalculateEstimateDate] (@vWorkOrderID numeric,@ToDate DateTime=null)
Returns varchar(100)  AS
Begin
  <Function Body>
End
Run Code Online (Sandbox Code Playgroud)

现在我可以调用函数:

SELECT dbo.fCalculateEstimateDate(647,GETDATE())
Run Code Online (Sandbox Code Playgroud)

但它在跟随电话时出错:

SELECT dbo.fCalculateEstimateDate(647)
Run Code Online (Sandbox Code Playgroud)

为程序或函数dbo.fCalculateEstimateDate提供的参数数量不足.

根据我的理解不应该发生.

我错过了什么吗?提前致谢.

sql sql-server-2005

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

带有约束的SQL Server 2005 drop column

我有一个带有"DEFAULT"约束的列.我想创建一个删除该列的脚本.

问题是它返回此错误:

Msg 5074, Level 16, State 1, Line 1  
The object 'DF__PeriodSce__IsClo__4BCC3ABA' is dependent on column 'IsClosed'. 
Msg 4922, Level 16, State 9, Line 1 
ALTER TABLE DROP COLUMN IsClosed failed because one or more objects access this column.
Run Code Online (Sandbox Code Playgroud)

我找不到一种简单的方法来删除一个列及其所有相关的约束(只发现了查看系统表的大脚本......必须(!!)这是一个"好"的方法.)

由于DEFAULT约束的名称是随机生成的,我不能按名称删除它.


更新:
约束类型为"DEFAULT".

我看到了你们提出的解决方案,但我发现它们都非常"脏"......你不觉得吗?我不知道它是用于Oracle还是MySQL,但它可以做类似的事情:

DROP COLUMN xxx CASCADE CONSTRAINTS 
Run Code Online (Sandbox Code Playgroud)

它会丢弃所有相关的约束......或者至少它会自动删除映射到该列的约束(至少CHECK约束!)

在MSSQL中没有类似的东西吗?

sql-server sql-server-2005

60
推荐指数
6
解决办法
7万
查看次数

如何在数据库中存储目录/层次结构/树结构?

如何在数据库中存储目录/层次结构/树结构?即MSSQL Server.

@olavk:看起来你没看过我自己的答案.我使用的方式比递归查询更好:)

pps 这是要走的路!

sql-server database-design sql-server-2005 tree-structure

59
推荐指数
3
解决办法
5万
查看次数

SQL Server 2005中VARBINARY字段的大小

我试图VARBINARY(MAX)使用SQL确定SQL Server 2005中字段中内容的大小.我怀疑是否有本机支持,可以使用CLR集成吗?任何想法将不胜感激.

sql sql-server clr sql-server-2005

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

如何更改SQL Server数据库的所有者?

当我不小心点击Database Diagrams选项卡时,我收到以下错误之一:

无法安装数据库关系图支持对象,因为此数据库没有有效的所有者.要继续,首先使用"数据库属性"对话框的"文件"页面或ALTER AUTHORIZATION语句将数据库所有者设置为有效登录,然后添加数据库关系图支持对象.

- - 要么 - -

数据库没有使用数据库图表所需的一个或多个支持对象.你想创造它们吗?

将此数据库的所有者更改为"sa"的语法是什么?

sql-server permissions sql-server-2005

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

59
推荐指数
3
解决办法
12万
查看次数

将表数据从一个SQL Server导出到另一个SQL Server

我有两个SQL Server(都是2005版).

我想将几个表从一个表迁移到另一个表.

我试过了:

  • 在源服务器上,我右键单击了所选的数据库Tasks/Generate scripts.问题是Table/View options没有Script data选择.

  • 然后我用来Script Table As/Create script生成SQL文件,以便在我的目标服务器上创建表.但我仍然需要所有的数据.

然后我尝试使用:

SELECT * 
INTO [destination server].[destination database].[dbo].[destination table] 
FROM [source server].[source database].[dbo].[source table]
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

对象包含的前缀数量超过最大数量.最大值为2.

有人可以指出我解决问题的正确方法吗?

sql sql-server export sql-server-2005

59
推荐指数
6
解决办法
21万
查看次数

为什么在SQL Server中使用游标被认为是不好的做法?

我在SQL 7天后就知道了一些性能原因,但SQL Server 2005中是否仍然存在相同的问题?如果我在存储过程中有一个我想单独操作的结果集,那么游标仍然是一个糟糕的选择吗?如果是这样,为什么?

sql-server sql-server-2005 cursor

58
推荐指数
8
解决办法
6万
查看次数