标签: sql-server

SQL Server 中的临时表和表变量有什么区别?

这似乎是一个有很多神话和相互冲突的领域。

那么SQL Server中的表变量和本地临时表有什么区别呢?

sql-server t-sql temporary-tables

465
推荐指数
2
解决办法
24万
查看次数

为什么事务日志不断增长或空间不足?

这个问题在大多数论坛和整个网络中似乎是一个常见问题,这里以多种格式提出,通常听起来像这样:

在 SQL Server 中 -

  • 事务日志变得如此之大的一些原因是什么?
  • 为什么我的日志文件这么大?
  • 有什么方法可以防止这个问题的发生?
  • 当我找到根本原因并希望将我的事务日志文件调整到正常大小时,我该怎么办?

sql-server shrink transaction-log auto-growth recovery-model

283
推荐指数
4
解决办法
32万
查看次数

什么时候应该使用唯一约束而不是唯一索引?

当我希望一列具有不同的值时,我可以使用约束

create table t1(
id int primary key,
code varchar(10) unique NULL
);
go
Run Code Online (Sandbox Code Playgroud)

或者我可以使用唯一索引

create table t2(
id int primary key,
code varchar(10) NULL
);
go

create unique index I_t2 on t2(code);
Run Code Online (Sandbox Code Playgroud)

具有唯一约束的列似乎是唯一索引的良好候选者。

是否有任何已知的原因使用唯一约束而不是使用唯一索引?

index sql-server constraint best-practices unique-constraint

238
推荐指数
4
解决办法
11万
查看次数

你如何记录你的数据库?

我发现我的大多数客户根本没有记录他们的数据库,我觉得这很可怕。为了介绍一些更好的实践,我想知道人们正在使用哪些工具/流程。

  • 你如何记录你的数据库?(SQL 服务器)
  • 你用什么工具?
  • 数据库模式/元数据的文档存储格式?
    • Word文档
    • Excel电子表格
    • 纯文本
  • 文档流程或政策?

我不是在谈论逆向工程/记录现有数据库,而是主要讨论开发系统/数据库时的文档最佳实践。

sql-server documentation

238
推荐指数
14
解决办法
12万
查看次数

什么时候应该将主键声明为非聚集的?

在为我之前问的另一个问题创建测试数据库时,我记得可以声明主键 NONCLUSTERED

什么时候使用NONCLUSTERED主键而不是CLUSTERED主键?

提前致谢

sql-server primary-key

188
推荐指数
4
解决办法
14万
查看次数

CTE 和临时表有什么区别?

通用表表达式 (CTE) 和临时表有什么区别?我什么时候应该使用一个?

CTE

WITH cte (Column1, Column2, Column3)
AS
(
    SELECT Column1, Column2, Column3
    FROM SomeTable
)

SELECT * FROM cte
Run Code Online (Sandbox Code Playgroud)

临时表

SELECT Column1, Column2, Column3
INTO #tmpTable
FROM SomeTable

SELECT * FROM #tmpTable
Run Code Online (Sandbox Code Playgroud)

sql-server cte

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

帮助安装 SQL Server 2017 - VS Shell 安装失败,退出代码为 1638

有关如何处理此错误的任何建议:

TITLE: Microsoft SQL Server 2017 Setup
------------------------------

The following error has occurred:

VS Shell installation has failed with exit code 1638.

For help, click: https://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft%20SQL%20Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=14.0.1000.169&EvtType=0x5B39C8B9%25401434%25403

------------------------------
BUTTONS:

OK
------------------------------
Run Code Online (Sandbox Code Playgroud)

这是一台正在运行的新笔记本电脑

  • SQL Server 2016 Express
  • 视觉工作室 2017
  • SSMS 2017

我尝试卸载与 SQL Server 或 Visual Studio 相关的任何内容。

日志:[3500:3970][2017-11-03T16:25:20]e000:错误 0x80070666:安装较新版本时无法安装产品。

Detailed results:
  Feature:                       Full-Text and Semantic Extractions for Search
  Status:                        Failed
  Reason for failure:            An error occurred for a dependency of the feature causing the setup process for the feature to fail. …
Run Code Online (Sandbox Code Playgroud)

sql-server installation sql-server-2017

168
推荐指数
2
解决办法
17万
查看次数

开发人员应该能够查询生产数据库吗?

是否应该授予开发人员查询(SELECT/只读)生产数据库的权限?我之前工作的地方,开发团队有这个db_datareader角色;我现在工作的地方开发团队甚至无法连接到生产实例。

其中一个测试实例是每周一次从生产备份中恢复的生产副本,因此开发人员实际查看数据没有任何问题。

不允许开发人员查询生产(除了根本不希望他们有权读取敏感数据)有什么好的理由?

sql-server best-practices permissions

167
推荐指数
17
解决办法
5万
查看次数

如何移动 SQL Server 数据库文件?

我有一个数据库,想将.mdf.ldf文件移动到另一个位置。但是我不想停止MSSQLSERVER服务,也不想导出到另一台服务器。

我怎样才能做到这一点?

sql-server backup sql-server-2012

138
推荐指数
6
解决办法
39万
查看次数

Guid vs INT - 作为主键哪个更好?

我一直在阅读使用或不使用Guid和的原因int

int更小、更快、更容易记住、保持时间顺序。至于Guid,我发现的唯一优点是它是独一无二的。在哪种情况下 aGuid会更好int,为什么?

从我所看到的,int除了数量限制之外没有任何缺陷,这在许多情况下是无关紧要的。

究竟为什么被Guid创造?我实际上认为它除了用作简单表的主键之外还有其他用途。(任何Guid用于某事的实际应用程序的示例?)

SQL Server 上的 ( Guid = UniqueIdentifier ) 类型

performance sql-server primary-key uniqueidentifier

135
推荐指数
6
解决办法
11万
查看次数