建议使用哪个 SQL 命令将日期转换为yyyymmdd格式?
convert(varchar(8), getdate(), 112); 或者convert(varchar, getdate(), 112)我注意到如果我使用第二个,它会在日期后附加两个空格。(例如 [ 20130705] - 注意值后面的两个空格20130705)
是否建议使用第一个 SQL 语句?
我们有两台服务器。我们刚刚压缩了一个,但我接手了这个小项目,这个人说有些表不是很好的候选人。与许多其他人一样,性能至关重要。说某些表不应该被压缩是否准确?如果是这样,寻找的一般阈值是多少?我运行他的脚本来检查读取/写入的每个对象,但是由于这看起来像是历史,而不是时间范围内发生的事情,因此这可能不是衡量它的准确方法。
我们正在我们的系统中实施一项新功能,这将导致smallint每晚从表中清除大约一百万条记录(每条记录都很小,基本上是一个 GUID、一个日期和四个字段)。基本上它是一个缓存表,一旦数据存在 7 天,我们就会:
DELETE FROM scheduleCache WHERE schDateCreated < '2013-08-26
这将在每晚凌晨 1 点运行,每次运行将清除大约一百万条记录。
对于这样的桌子,我应该注意或做些什么吗?我应该把什么属性放在桌子上,或者我应该定期运行什么程序来“清理”?我以前从未处理过这样的桌子。
该表有一个聚集索引(GUID + 一个smallint字段),我们有每周一次的索引重建,每周日早上运行。
假设我有以下查询:
SELECT *
FROM AppDetails, AppTags
WHERE AppDetails.AppID = '1'
AND AppDetails.AppID = AppTags.AppID
Run Code Online (Sandbox Code Playgroud)
这给出了以下结果:
AppID AppName AppType Tag
1 Application1 Utility Test1
1 Application1 Utility Test2
1 Application1 Utility Test3
Run Code Online (Sandbox Code Playgroud)
如何修改查询以返回如下内容:
AppID AppName AppType Tags
1 Application1 Utility Test1,Test2,Test3
Run Code Online (Sandbox Code Playgroud) 我正在尝试从备份中恢复并收到以下错误
消息 3201,级别 16,状态 2,第 1 行
无法打开备份设备“Z:\FULL_BACKUP.bak”。操作系统错误 3(无法检索此错误的文本。原因:15105)。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 异常终止。
我在 SQL Server 中使用的代码如下(我也尝试使用对话框屏幕并得到相同的结果)
RESTORE DATABASE DEX
FROM DISK = 'Z:\FULL_BACKUP.bak'
WITH MOVE 'Decri' TO 'E:\Test\DEX.mdf',
MOVE 'Decri_log' TO 'E:\Test\DEX.LDF'
Run Code Online (Sandbox Code Playgroud)
可能值得注意的是,“FULL_BACKUP”是由同一个 SQL 服务器创建的,没有任何问题(所以我假设服务器有权限)。
驱动器 Z 是一个网络路径,所有域用户都可以对其进行“完全访问”。
完整备份为 200Gb
驱动器 E(本地)有 500Gb 可用空间
任何帮助,将不胜感激。
我在我的 SQL Server 上强制加密。我的意图是拒绝任何不使用 SSL 进行连接的客户端连接。我在正确的轨道上吗?
这是我的详细步骤:
我还缺什么吗?
我使用以下命令在我的数据库中创建一个用户:
CREATE USER Test WITHOUT LOGIN
Run Code Online (Sandbox Code Playgroud)
我用测试名称创建了一个登录名。
我想将测试用户与测试登录联系起来。
当我使用以下命令时:
EXEC sp_change_users_login 'Update_One', 'Test', 'Test'
Run Code Online (Sandbox Code Playgroud)
SQL Server 引发了以下错误:
Msg 15291, Level 16, State 1, Procedure sp_change_users_login, Line 114
Terminating this procedure. The User name 'Test' is absent or invalid.
Run Code Online (Sandbox Code Playgroud)
当我使用以下命令时:
ALTER USER Test WITH LOGIN = Test
Run Code Online (Sandbox Code Playgroud)
SQL Server 引发波纹管错误:
Msg 33016, Level 16, State 1, Line 2
The user cannot be remapped to a login. Remapping can only be done for users that were mapped to Windows or SQL logins. …Run Code Online (Sandbox Code Playgroud) sql-server-2008 sql-server sql-server-2008-r2 sql-server-2012 logins
我的 SQL Server 的实例名称是SQLEXPRESS并且 SQL Server 服务名称看起来像MSSQL$SQLEXPRESS。实例名称和服务名称之间有什么关系吗?我正在尝试按名称检查 SQL Server 服务状态,我想知道其他计算机上的 SQL Server 服务名称可以不同吗?
我有一台运行 SQL Server 2008 Web 版的生产服务器,它必须保持 24x7 全天候运行,几乎没有停机时间,现在是我们转向更先进的服务器硬件的时候了,也是转向 SQL Server 的好机会2012年企业。
现在我的问题是,如何在不关闭数据库的情况下进行此迁移?例如在两台服务器之间设置一些东西作为复制左右,所以我在两台服务器上都有完全相同的数据库,然后我可以将主要服务关闭 1 分钟,更改数据库连接的 IP 地址从旧服务器到新服务器,我确信新服务器具有与旧服务器相同的副本。
我不能采用备份/恢复方法,因为它需要的时间超过可接受的时间,这就是为什么我需要一些东西来保证完全相同的数据库,就像我在做备份/恢复一样。5 分钟可能是可承受的最大停机时间。
数据库大小约为 100GB。
新服务器运行2012 Enterprise,旧服务器运行2008 Web
我可以异常地归档数据库中的记录,并将其大小最小化到 20GB 之类。
我可以选择将我的 SQL Server 2008 Web 版升级到企业版,如果这有助于更多解决方案,比如复制?
replication sql-server-2008 sql-server migration sql-server-2012
sql-server-2008 ×10
sql-server ×6
backup ×1
compression ×1
date-format ×1
delete ×1
join ×1
logins ×1
migration ×1
replication ×1
ssl ×1
syntax ×1