标签: sql-server-2008

将日期转换为 yyyymmdd 格式

建议使用哪个 SQL 命令将日期转换为yyyymmdd格式?

  1. convert(varchar(8), getdate(), 112); 或者
  2. convert(varchar, getdate(), 112)

我注意到如果我使用第二个,它会在日期后附加两个空格。(例如 [ 20130705] - 注意值后面的两个空格20130705

是否建议使用第一个 SQL 语句?

sql-server-2008 sql-server date-format type-conversion

7
推荐指数
1
解决办法
11万
查看次数

什么时候不应该压缩表

我们有两台服务器。我们刚刚压缩了一个,但我接手了这个小项目,这个人说有些表不是很好的候选人。与许多其他人一样,性能至关重要。说某些表不应该被压缩是否准确?如果是这样,寻找的一般阈值是多少?我运行他的脚本来检查读取/写入的每个对象,但是由于这看起来像是历史,而不是时间范围内发生的事情,因此这可能不是衡量它的准确方法。

sql-server-2008 sql-server compression

7
推荐指数
1
解决办法
1658
查看次数

删除一百万条记录后该怎么办

我们正在我们的系统中实施一项新功能,这将导致smallint每晚从表中清除大约一百万条记录(每条记录都很小,基本上是一个 GUID、一个日期和四个字段)。基本上它是一个缓存表,一旦数据存在 7 天,我们就会:

DELETE FROM scheduleCache WHERE schDateCreated < '2013-08-26

这将在每晚凌晨 1 点运行,每次运行将清除大约一百万条记录。

对于这样的桌子,我应该注意或做些什么吗?我应该把什么属性放在桌子上,或者我应该定期运行什么程序来“清理”?我以前从未处理过这样的桌子。

该表有一个聚集索引(GUID + 一个smallint字段),我们有每周一次的索引重建,每周日早上运行。

sql-server-2008 delete

7
推荐指数
1
解决办法
677
查看次数

在单个结果中连接一对多字段?

假设我有以下查询:

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)

sql-server-2008 join syntax group-concatenation

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

将所有主键值增加 1

EmployeeID如果它是主键,我如何将所有值加一?

sql-server-2008 database-design

7
推荐指数
2
解决办法
3349
查看次数

SQL Server 2008 数据库还原错误 - 无法打开备份设备 15105

我正在尝试从备份中恢复并收到以下错误

消息 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-2008 sql-server backup

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

即使在服务器端启用了强制加密,MS SQL Server 也接受非 SSL 连接

我在我的 SQL Server 上强制加密。我的意图是拒绝任何不使用 SSL 进行连接的客户端连接。我在正确的轨道上吗?

这是我的详细步骤:

  • makecert -r -pe -n "CN=slc02xla.company.com" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel 加密提供程序" -sy 12 c:\my.cer
  • 我将相同的证书导入受信任的根证书颁发机构商店
  • 在 SQL Server 配置管理器中,展开 SQL Server 网络配置,右键单击 的协议,然后选择属性。
  • 在证书选项卡上,从证书下拉菜单中选择所需的证书,然后单击确定。
  • 在“标志”选项卡上,在“强制加密”框中选择“是”,然后单击“确定”关闭对话框。
  • 重新启动 SQL Server 服务。

我还缺什么吗?

sql-server-2008 sql-server ssl

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

Sql Server 修复用户

我使用以下命令在我的数据库中创建一个用户:

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

7
推荐指数
1
解决办法
2万
查看次数

SQL Server 服务名称和实例名称之间有任何关系吗?

我的 SQL Server 的实例名称是SQLEXPRESS并且 SQL Server 服务名称看起来像MSSQL$SQLEXPRESS。实例名称和服务名称之间有什么关系吗?我正在尝试按名称检查 SQL Server 服务状态,我想知道其他计算机上的 SQL Server 服务名称可以不同吗?

sql-server-2008

7
推荐指数
2
解决办法
5500
查看次数

将实时 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

7
推荐指数
1
解决办法
2925
查看次数