我最近遇到过SQL Server的许多不同领域,我通常不会搞砸.让我困惑的其中一个是登录和用户区域.好像它应该是一个非常简单的话题......
似乎每次登录只能有1个用户,每个用户只能登录1次.
登录可以与多个表相关联,从而将该用户与许多表相关联.
所以我的问题是为什么即使有登录和用户?他们似乎几乎是同一个人.有什么不同,或者我似乎缺少什么?
我想使用SQL Server 2005和2008默认输出使用SQL查询从DateTime列获取时间:
AttDate
==
2011-02-09 13:09:00
2011-02-09 14:10:00
Run Code Online (Sandbox Code Playgroud)
我想要这个输出:
AttDate Time
==
2011-02-09 13:09:00 13:09
2011-02-09 14:10:00 14:10
Run Code Online (Sandbox Code Playgroud) 由于活动连接,我的SQL Server 2005无法还原备份.我怎么强迫它?
我可以使用Day(Date()),提取月和日Month(Date()).我无法提取小时数HOUR(Date()).我收到以下错误.
'HOUR' is not a recognized built-in function name.
Run Code Online (Sandbox Code Playgroud)
我怎样才能提取数小时?
我从SQL Server中删除了一个数据库,但事实证明我的登录设置为使用已删除的数据库作为其默认值.我可以使用连接对话框中的"选项"按钮连接到SQL Server Management Studio,并选择"master"作为要连接的数据库.但是,每当我尝试在对象资源管理器中执行任何操作时,它都会尝试使用我的默认数据库进行连接并失败.
有没有人知道如何在不使用object explorer的情况下设置我的默认数据库?
我有一个Test带有列的表的MS SQL 2005数据库ID.ID是一个标识列.
我在这个表中有行,并且所有行都有相应的ID自动增量值.
现在我想更改此表中的每个ID,如下所示:
ALTER TABLE Test NOCHECK CONSTRAINT ALL
set identity_insert ID ON
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到一个错误:
ALTER TABLE Test NOCHECK CONSTRAINT ALL
set identity_insert ID ON
Run Code Online (Sandbox Code Playgroud)
我试过这个:
ALTER TABLE Test NOCHECK CONSTRAINT ALL
set identity_insert ID ON
Run Code Online (Sandbox Code Playgroud)
但这并没有解决问题.
我需要将标识设置为此列,但我还需要不时更改值.所以我的问题是如何完成这项任务.
t-sql sql-server identity sql-server-2005 sql-server-2005-express
我有一张桌子列出了人们的出生日期(目前是nvarchar(25))
如何将其转换为日期,然后计算年龄?
我的数据如下
ID Name DOB
1 John 1992-01-09 00:00:00
2 Sally 1959-05-20 00:00:00
Run Code Online (Sandbox Code Playgroud)
我想看看:
ID Name AGE DOB
1 John 17 1992-01-09 00:00:00
2 Sally 50 1959-05-20 00:00:00
Run Code Online (Sandbox Code Playgroud) 我听说你应该在索引声明的开头放置最具选择性的列.例:
CREATE NONCLUSTERED INDEX MyINDX on Table1
(
MostSelective,
SecondMost,
Least
)
Run Code Online (Sandbox Code Playgroud)
首先,我说的是正确的吗?如果是这样,我可能会通过重新排列索引中列的顺序来看到性能上的巨大差异,还是更像是"很好做"的做法?
我问的原因是因为在通过DTA进行查询后,它建议我创建一个索引,其中几乎所有列都与现有索引相同,只是顺序不同.我正在考虑将缺少的列添加到现有索引并调用它.思考?
SELECT logcount, logUserID, maxlogtm
, DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE daysdiff > 120
Run Code Online (Sandbox Code Playgroud)
我明白了
"无效的列名称daysdiff".
Maxlogtm是一个日期时间字段.这是让我疯狂的小东西.
sql-server-2005 ×10
sql-server ×8
t-sql ×5
sql ×4
datetime ×2
backup ×1
date ×1
disconnect ×1
hour ×1
identity ×1
indexing ×1
restore ×1
select ×1
ssms ×1