我想将时间存储在数据库表中,但只需要存储小时和分钟.我知道我可以使用DATETIME并忽略日期的其他组件,但是如果不存储比我实际需要的更多信息,最好的方法是什么?
在SQL Server中执行递归自联接的最简单方法是什么?我有这样一张桌子:
PersonID | Initials | ParentID
1 CJ NULL
2 EB 1
3 MB 1
4 SW 2
5 YT NULL
6 IS 5
Run Code Online (Sandbox Code Playgroud)
而且我希望能够获得仅与特定人员开始的层次结构相关的记录.所以,如果我通过PersonID = 1请求CJ的层次结构,我会得到:
PersonID | Initials | ParentID
1 CJ NULL
2 EB 1
3 MB 1
4 SW 2
Run Code Online (Sandbox Code Playgroud)
对于EB,我会得到:
PersonID | Initials | ParentID
2 EB 1
4 SW 2
Run Code Online (Sandbox Code Playgroud)
我有点卡住这个可以想不出怎么做除了基于一堆连接的固定深度响应.这会发生,因为我们不会有很多级别,但我想做得恰到好处.
谢谢!克里斯.
如何在SQL Server中将UNIX时间戳(bigint)转换为DateTime?
我有一个表在主键约束中缺少一列.我不想通过SQL Server进行编辑,而是将其放在一个脚本中,以将其添加为更新脚本的一部分.
我可以使用什么语法来执行此操作?我必须放弃并重新创建关键约束吗?
我有一张桌子如下:
ID User Activity PageURL
1 Me act1 ab
2 Me act1 cd
3 You act2 xy
4 You act2 st
Run Code Online (Sandbox Code Playgroud)
我希望按用户和活动进行分组,这样我最终得到的结果如下:
User Activity PageURL
Me act1 ab, cd
You act2 xy, st
Run Code Online (Sandbox Code Playgroud)
如您所见,列PageURL由基于group by的逗号分隔在一起.
真的很感激任何指针和建议.
当我使用MS SQL Server Management Studio备份或恢复数据库时,我可以直观地看到进程进展的程度,以及我还需要等待多长时间才能完成.如果我用脚本开始备份或恢复,有没有办法监控进度,或者我只是坐下来等待它完成(希望没有出错?)
编辑:我的需要是能够完全独立于启动备份或恢复的会话监视备份或恢复进度.
我想在SQL Server Management Studio 2008中自动生成脚本.
现在我做的是:
有没有办法自动完成这项任务?
编辑:我想生成创建脚本,而不是更改脚本.
sql-server automation ssms sql-server-2008 visual-studio-2008
任何人都能告诉我是否有相当于SCOPE_IDENTITY()在SQL Server中使用GUID作为主键的时候?
我不想先创建GUID并保存为变量,因为我们使用顺序GUID作为主键.
有什么最好的方法来检索最后插入的GUID主键吗?
我需要将int datafield转换为带有前导零的nvarchar
例:
1转换为'001'
867转换为'000867'等
谢谢.
这是我4小时后的回复......
我测试了这个T-SQL脚本,对我来说工作正常!
DECLARE @number1 INT, @number2 INT
SET @number1 = 1
SET @number2 = 867
SELECT RIGHT('000' + CAST(@number1 AS NCHAR(3)), 3 ) AS NUMBER_CONVERTED
SELECT RIGHT('000000' + CAST(@number2 AS NCHAR(6)), 6 ) AS NUMBER_CONVERTED
Run Code Online (Sandbox Code Playgroud)
我创建了这个用户功能
T-SQL代码:
CREATE FUNCTION CIntToChar(@intVal BIGINT, @intLen Int) RETURNS nvarchar(20)
AS
BEGIN
-- BIGINT = 2^63-1 (9,223,372,036,854,775,807) Max size number
-- @intlen contains the string size to return
IF @intlen > 20
SET @intlen = 20
RETURN REPLICATE('0',@intLen-LEN(RTRIM(CONVERT(nvarchar(20),@intVal))))
+ …Run Code Online (Sandbox Code Playgroud) 有没有办法生成类型为varchar(32)的MD5哈希字符串,而不使用fn_varbintohexstr
SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', 'email@dot.com')), 3, 32)
Run Code Online (Sandbox Code Playgroud)
所以它可以在带有SCHEMABINDING的视图中使用