我有一种情况,我需要对一组列强制执行唯一约束,但只对列的一个值.
所以例如我有一个像Table(ID,Name,RecordStatus)这样的表.
RecordStatus只能有一个值1或2(活动或删除),我只想在RecordStatus = 1时创建一个唯一约束(ID,RecordStatus),因为我不关心是否有多个已删除的记录具有相同的ID.
除了编写触发器,我可以这样做吗?
我正在使用SQL Server 2005.
如何使用SQL查询获取MS SQL表的表创建日期?
我在物理上看不到任何表,但我可以查询该特定表.
我有一个查询计算会员在数据库中的结婚日期...
Select
Sum(NumberOfBrides) As [Wedding Count],
DATEPART( wk, WeddingDate) as [Week Number],
DATEPART( year, WeddingDate) as [Year]
FROM MemberWeddingDates
Group By DATEPART( year, WeddingDate), DATEPART( wk, WeddingDate)
Order By Sum(NumberOfBrides) Desc
Run Code Online (Sandbox Code Playgroud)
如何在结果集中表示每周的开始和结束时计算出来?
Select
Sum(NumberOfBrides) As [Wedding Count],
DATEPART( wk, WeddingDate) as [Week Number],
DATEPART( year, WeddingDate) as [Year],
??? as WeekStart,
??? as WeekEnd
FROM MemberWeddingDates
Group By DATEPART( year, WeddingDate), DATEPART( wk, WeddingDate)
Order By Sum(NumberOfBrides) Desc
Run Code Online (Sandbox Code Playgroud) 如何将列值从转换varbinary(max)到varchar人类可读的形式?
我想知道在MS SQL Server 2005中是否有办法做到这一点:
DECLARE @theDate varchar(60)
SET @theDate = '''2010-01-01'' AND ''2010-08-31 23:59:59'''
SELECT AdministratorCode,
SUM(Total) as theTotal,
SUM(WOD.Quantity) as theQty,
AVG(Total) as avgTotal,
(SELECT SUM(tblWOD.Amount)
FROM tblWOD
JOIN tblWO on tblWOD.OrderID = tblWO.ID
WHERE tblWO.Approved = '1'
AND tblWO.AdministratorCode = tblWO.AdministratorCode
AND tblWO.OrderDate BETWEEN @theDate
)
... etc
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我一直在SQL Server 2005试图获取大量数据.我已经获得了一个包含近300个表的数据库,我需要将其转换为MySQL数据库.我的第一个调用是使用bcp,但不幸的是它没有生成有效的CSV - 字符串没有封装,所以你不能处理任何带有逗号的字符串(或者你用作分隔符的任何行)我仍然需要手工编写所有的create table语句,因为很明显CSV并没有告诉你有关数据类型的任何信息.
更好的是,如果有一些工具可以连接到SQL Server和MySQL,然后进行复制.您丢失了视图,存储过程,触发器等,但是复制仅使用基本类型从一个数据库到另一个数据库的表并不困难......是吗?
有人知道这样的工具吗?我不介意它做了多少假设或简化发生,只要它支持整数,浮点数,日期时间和字符串.我不得不做很多修剪,正常化等等,所以我不关心保持键,关系或类似的东西,但我需要快速的初始数据集!
MySQL有这个非常有用但又很合适的REPLACE INTOSQL命令.
这可以在SQL Server 2005中轻松模拟吗?
开始一个新的事务,在做了Select(),然后要么UPDATE或INSERT和COMMIT始终是一个痛苦的一点点,在应用程序中做特别是当,因此能始终保持2个版本的声明.
我想知道是否有一种简单而通用的方法将这样的功能实现到SQL Server 2005中?
如何判断哪些表占用了SQL Server 2005数据库中最多的空间?
我确信有一些系统存储过程可以显示此信息.
我有一个TEST数据库,从1tb增长到23tb.我们目前正在数据库中进行大量的客户端转换测试,这需要多次运行相同的转换存储过程.我确实正在增加事务日志的DELETE.但这让我想到问这个问题.
最大的问题是dbo.Download表,它创建了实际上不需要的大容量存储,在截断之前我有3GB,然后是52MB;)
其中[CastleType]在SQL Server中设置为数据类型"text",查询为:
SELECT *
FROM [Village]
WHERE [CastleType] = 'foo'
Run Code Online (Sandbox Code Playgroud)
我收到错误:
TEXT和VARCHAR数据类型在等于运算符中不兼容.
我是否可以使用WHERE子句查询此数据类型?
sql-server-2005 ×10
sql-server ×9
sql ×6
t-sql ×4
mysql ×2
bcp ×1
csv ×1
date ×1
dynamic-sql ×1
sql-like ×1
varchar ×1
week-number ×1