我有一个带有标识列的表说:
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 中,您可以指定连接提示:
这三个连接提示的定义是什么,应该什么时候使用?
我很久以前在某个地方读过。这本书指出我们不应该允许在 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)
在我的工作场所,我调查了我们的一个内部数据库应用程序。我检查了对象,发现有两到三层的视图相互堆叠。所以这让我想起了我过去读过的东西。有人可以帮忙解释一下吗?
如果这样做不行,我想知道它仅限于 …
我们有一个存储过程,用户可以手动运行它来获取全天不断使用的报告的一些更新数字。
我有第二个存储过程应该在第一个存储过程运行后运行,因为它基于从第一个存储过程中获得的数字,但是运行时间更长,并且是一个单独的进程,所以我不想在第二个存储过程运行时让用户等待。
有没有办法让一个存储过程启动第二个存储过程,并立即返回而不等待结果?
我正在使用 SQL Server 2005。
我正在从一个批处理文件运行 sqlcmd,我想知道如何让它在备份出现问题时返回 0 以外的 ERRORLEVEL。
在设计 SQL 服务器数据架构和后续查询、sproc、视图等时,对于明确部署在 SSD 平台上的数据库设计,集群索引和磁盘上数据顺序的概念是否有意义?
http://msdn.microsoft.com/en-us/library/aa933131(v=sql.80).aspx
“聚集索引决定了表中数据的物理顺序。”
在物理磁盘平台上,考虑它们的设计对我来说很有意义,因为对数据进行物理扫描以检索“顺序”行可能比通过表查找性能更高。
在 SSD 平台上,所有数据读取访问都使用相同的查找。没有“物理顺序”的概念,数据读取不是“顺序”的,因为位存储在同一块硅片上。
那么,在设计应用数据库的过程中,聚集索引的考虑是否与该平台相关?
我最初的想法是,这并不是因为“有序数据”的想法不适用于 SSD 存储和搜索/检索优化。
编辑:我知道 SQL Server会创建一个,我只是在思考在设计/优化期间考虑它是否有意义。
我发现这个脚本 sql-server-2005-reaching-table-row-size-limit 似乎返回每个定义的数据类型长度的行大小。我需要一个脚本,它会给我一个表中的所有行,它们的最大数据大小超过推荐的 8024(无论 MS 推荐什么)
我的本地开发服务器在中东,但我的生产服务器在英国。
我需要在他们的时区向用户显示日期。例如,如果用户在沙特阿拉伯,那么我需要根据沙特阿拉伯格式显示时间。
我应该创建一个名为 TimeZone 的新数据库表并以 UTC 格式保存时间吗?
我可以在桌面上安装 SQL Server Management Studio 以访问 SQL Server 2012 实例上的数据库吗?
如果是这样,我在哪里可以找到安装程序?Google 搜索仅返回“express”版本,而我正在寻找完整的 SQL Server Management Studio。
我正在寻找处理 SQL Server 2012 可用性组中计划的 SQL Server 代理作业的最佳实践。也许我错过了一些东西,但是在目前的状态下,我觉得 SQL Server 代理并没有真正与 SQL2012 的这个强大功能集成在一起。
如何让计划的 SQL 代理作业知道节点切换?例如,我有一个在主节点上运行的作业,它每小时加载数据。现在,如果主要服务器出现故障,我如何激活现在成为主要服务器的辅助服务器上的作业?
如果我总是在辅助上安排作业,它会失败,因为辅助是只读的。
sql-server sql-server-2012 sql-server-agent availability-groups
sql-server ×10
identity ×1
installation ×1
performance ×1
sqlcmd ×1
ssms ×1
timezone ×1
view ×1