标签: sql-server

如何使用 SELECT INTO 复制表但忽略 IDENTITY 属性?

我有一个带有标识列的表说:

create table with_id (
 id int identity(1,1),
 val varchar(30)
);
Run Code Online (Sandbox Code Playgroud)

众所周知,这

select * into copy_from_with_id_1 from with_id;
Run Code Online (Sandbox Code Playgroud)

导致 copy_from_with_id_1 在 id 上也带有标识。

以下堆栈溢出问题提到明确列出所有列。

咱们试试吧

select id, val into copy_from_with_id_2 from with_id;
Run Code Online (Sandbox Code Playgroud)

糟糕,即使在这种情况下 id 也是一个标识列。

我想要的是一张像

create table without_id (
 id int,
 val varchar(30)
);
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 sql-server identity

45
推荐指数
4
解决办法
6万
查看次数

哈希、合并和循环连接之间的区别?

在 SQL Server 中,您可以指定连接提示:

  • HASH JOIN
  • MERGE JOIN
  • LOOP JOIN

这三个连接提示的定义是什么,应该什么时候使用?

sql-server

45
推荐指数
2
解决办法
6万
查看次数

嵌套视图是一个好的数据库设计吗?

我很久以前在某个地方读过。这本书指出我们不应该允许在 SQL Server 中使用嵌套视图。我不确定我们不能这样做的原因,或者我可能记得不正确的陈述。

学生们

SELECT studentID, first_name, last_name, SchoolID, ... FROM students

CREATE VIEW vw_eligible_student
AS 
SELECT * FROM students
WHERE enroll_this_year = 1
Run Code Online (Sandbox Code Playgroud)

老师

SELECT TeacherID, first_name, last_name, SchoolID, ... FROM teachers

CREATE VIEW vw_eligible_teacher
AS 
SELECT * FROM teachers
WHERE HasCert = 1 AND enroll_this_year = 1
Run Code Online (Sandbox Code Playgroud)

学校

CREATE VIEW vw_eligible_school
AS 
SELECT TOP 100 PERCENT SchoolID, school_name 

FROM schools sh 
JOIN
     vw_eligible_student s 
     ON s.SchoolID = sh.SchoolID
JOIN 
     vw_eligible_teacher t
     ON s.SchoolID = t.SchoolID
Run Code Online (Sandbox Code Playgroud)

在我的工作场所,我调查了我们的一个内部数据库应用程序。我检查了对象,发现有两到三层的视图相互堆叠。所以这让我想起了我过去读过的东西。有人可以帮忙解释一下吗?

如果这样做不行,我想知道它仅限于 …

performance database-design sql-server view

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

我可以启动存储过程并立即返回而不等待它完成吗?

我们有一个存储过程,用户可以手动运行它来获取全天不断使用的报告的一些更新数字。

我有第二个存储过程应该在第一个存储过程运行后运行,因为它基于从第一个存储过程中获得的数字,但是运行时间更长,并且是一个单独的进程,所以我不想在第二个存储过程运行时让用户等待。

有没有办法让一个存储过程启动第二个存储过程,并立即返回而不等待结果?

我正在使用 SQL Server 2005。

sql-server-2005 sql-server stored-procedures

45
推荐指数
4
解决办法
6万
查看次数

当 .sql 脚本失败时,如何使 sqlcmd 返回 0 以外的 ERRORLEVEL?

我正在从一个批处理文件运行 sqlcmd,我想知道如何让它在备份出现问题时返回 0 以外的 ERRORLEVEL。

sql-server sql-server-2008-r2 sqlcmd

45
推荐指数
2
解决办法
5万
查看次数

使用 SSD 时,数据库设计中的聚集索引的概念是否有意义?

在设计 SQL 服务器数据架构和后续查询、sproc、视图等时,对于明确部署在 SSD 平台上的数据库设计,集群索引和磁盘上数据顺序的概念是否有意义?

http://msdn.microsoft.com/en-us/library/aa933131(v=sql.80).aspx
“聚集索引决定了表中数据的物理顺序。”

在物理磁盘平台上,考虑它们的设计对我来说很有意义,因为对数据进行物理扫描以检索“顺序”行可能比通过表查找性能更高。
在 SSD 平台上,所有数据读取访问都使用相同的查找。没有“物理顺序”的概念,数据读取不是“顺序”的,因为位存储在同一块硅片上。

那么,在设计应用数据库的过程中,聚集索引的考虑是否与该平台相关?

我最初的想法是,这并不是因为“有序数据”的想法不适用于 SSD 存储和搜索/检索优化。

编辑:我知道 SQL Server创建一个,我只是在思考在设计/优化期间考虑它是否有意义。

sql-server clustered-index

44
推荐指数
3
解决办法
3055
查看次数

如何获取 SQL Server 表中每行的实际数据大小?

我发现这个脚本 sql-server-2005-reaching-table-row-size-limit 似乎返回每个定义的数据类型长度的行大小。我需要一个脚本,它会给我一个表中的所有行,它们的最大数据大小超过推荐的 8024(无论 MS 推荐什么)

sql-server

44
推荐指数
3
解决办法
13万
查看次数

如何在 SQL Server 中正确处理 TimeZone?

我的本地开发服务器在中东,但我的生产服务器在英国。

我需要在他们的时区向用户显示日期。例如,如果用户在沙特阿拉伯,那么我需要根据沙特阿拉伯格式显示时间。

我应该创建一个名为 TimeZone 的新数据库表并以 UTC 格式保存时间吗?

sql-server-2008 sql-server timezone

44
推荐指数
4
解决办法
25万
查看次数

我可以在本地安装 SQL Server Management Studio 吗?

我可以在桌面上安装 SQL Server Management Studio 以访问 SQL Server 2012 实例上的数据库吗?

如果是这样,我在哪里可以找到安装程序?Google 搜索仅返回“express”版本,而我正在寻找完整的 SQL Server Management Studio。

sql-server ssms installation sql-server-2012

44
推荐指数
2
解决办法
10万
查看次数

SQL Server 代理作业和可用性组

我正在寻找处理 SQL Server 2012 可用性组中计划的 SQL Server 代理作业的最佳实践。也许我错过了一些东西,但是在目前的状态下,我觉得 SQL Server 代理并没有真正与 SQL2012 的这个强大功能集成在一起。

如何让计划的 SQL 代理作业知道节点切换?例如,我有一个在主节点上运行的作业,它每小时加载数据。现在,如果主要服务器出现故障,我如何激活现在成为主要服务器的辅助服务器上的作业?

如果我总是在辅助上安排作业,它会失败,因为辅助是只读的。

sql-server sql-server-2012 sql-server-agent availability-groups

43
推荐指数
3
解决办法
4万
查看次数