Questions tagged «sql-server»

Microsoft SQL Server是一个关系数据库管理系统(RDBMS)。将此标签用于所有SQL Server版本,包括Compact,Express,Azure,Fast-track,APS(以前称为PDW)和Azure SQL DW。请勿将此标签用于其他类型的DBMS(MySQL,PostgreSQL,Oracle等)。除非该标签与数据库直接相关,否则请勿将其用于软件和移动开发问题。


7
在SQL Server Management Studio中编辑表后保存更改
如果我想将任何更改保存在表中(以前保存在SQL Server Management Studio中)(表中没有数据),我会收到一条错误消息: 不允许保存更改。您所做的更改要求删除并重新创建下表。您已经对无法重新创建的表进行了更改,或者启用了“防止保存需要重新创建该表的更改”选项。 什么会使表格不容易编辑?还是SQL Server Management Studio要求重新创建表进行编辑的通常方法?这是什么-这个“防止保存更改的选项”?


12
将SQL Server中的datetime字段的默认值添加到时间戳
我有一个表格,用于收集从我们的网站提交的表单,但是由于某些原因,当他们创建表格时,他们并没有在表格中添加时间戳。我希望它输入输入记录的确切日期和时间。 我知道它在某处,但是我似乎找不到如何设置默认值(例如在Access中,您使用getNow()或Now()),但我不知道将其放置在何处。

15
使用T-SQL从日期月份和年份中创建日期
我正在尝试将包含2007年12月1日等各个部分的日期转换为SQL Server 2005中的日期时间。我尝试了以下方法: CAST(DATEPART(year, DATE)+'-'+ DATEPART(month, DATE) +'-'+ DATEPART(day, DATE) AS DATETIME) 但这会导致日期错误。将三个日期值转换为正确的日期时间格式的正确方法是什么?


23
如何从TSQL日期时间字段获取YYYY-MM-DD格式的日期?
如何从SQL Server检索YYYY-MM-DD格式的日期?我需要使用它才能与SQL Server 2000及更高版本一起使用。有没有一种简单的方法可以在SQL Server中执行此操作,或者在检索结果集之后以编程方式对其进行转换会更容易吗? 我已经在Microsoft Technet上阅读了CAST和CONVERT,但是没有列出我想要的格式,并且更改日期格式不是一种选择。
259 sql-server  tsql 

9
SQL Server中INNER JOIN与LEFT JOIN的性能
我创建了在9个表上使用INNER JOIN的SQL命令,无论如何,此命令将花费很长时间(超过五分钟)。所以我的同事建议我将INNER JOIN更改为LEFT JOIN,因为尽管我知道,但LEFT JOIN的性能更好。更改后,查询速度得到了显着提高。 我想知道为什么LEFT JOIN比INNER JOIN快? 我的SQL命令看起来象下面这样: SELECT * FROM A INNER JOIN B ON ... INNER JOIN C ON ... INNER JOIN D等 更新: 这是我的架构的简要介绍。 FROM sidisaleshdrmly a -- NOT HAVE PK AND FK INNER JOIN sidisalesdetmly b -- THIS TABLE ALSO HAVE NO PK AND FK …

7
在一列上选择DISTINCT
使用SQL Server,我有... ID SKU PRODUCT ======================= 1 FOO-23 Orange 2 BAR-23 Orange 3 FOO-24 Apple 4 FOO-25 Orange 我想要 1 FOO-23 Orange 3 FOO-24 Apple 这个查询没有让我知道。如何仅在一列上选择DISTINCT? SELECT [ID],[SKU],[PRODUCT] FROM [TestData] WHERE ([PRODUCT] = (SELECT DISTINCT [PRODUCT] FROM [TestData] WHERE ([SKU] LIKE 'FOO-%')) ORDER BY [ID]
258 sql  sql-server  tsql  distinct 


12
SQL Server:快速查询,但过程缓慢
查询运行速度很快: DECLARE @SessionGUID uniqueidentifier SET @SessionGUID = 'BCBA333C-B6A1-4155-9833-C495F22EA908' SELECT * FROM Report_Opener WHERE SessionGUID = @SessionGUID ORDER BY CurrencyTypeOrder, Rank 子树成本:0.502 但是将相同的SQL放入存储过程运行速度很慢,并且执行计划完全不同 CREATE PROCEDURE dbo.ViewOpener @SessionGUID uniqueidentifier AS SELECT * FROM Report_Opener WHERE SessionGUID = @SessionGUID ORDER BY CurrencyTypeOrder, Rank EXECUTE ViewOpener @SessionGUID 子树成本:19.2 我跑了 sp_recompile ViewOpener 而且它仍然运行相同(严重),并且我还将存储过程更改为 CREATE PROCEDURE …

21
表中主键的最佳做法是什么?
在设计表时,我养成了一种习惯,即拥有一列唯一且由我作为主键的列。这可以通过三种方式来实现,具体取决于需求: 自动递增的标识整数列。 唯一标识符(GUID) 可以用作行标识符列的短字符(x)或整数(或其他相对较小的数字类型)列 数字3将用于较小的查找,大多数情况下是读取的表,这些表可能具有唯一的静态长度字符串代码或数字值,例如年份或其他数字。 在大多数情况下,所有其他表都将具有自动递增的整数或唯一标识符主键。 问题:-) 我最近开始使用没有一致行标识符的数据库,并且主键当前聚集在各个列上。一些例子: 日期时间/字符 日期时间/整数 日期时间/ varchar char / nvarchar / nvarchar 有没有有效的理由呢?对于这些情况,我将始终定义一个标识或唯一标识符列。 此外,还有许多根本没有主键的表。这样做的有效原因是什么? 我试图理解为什么表是按原样设计的,这对我来说似乎是一团糟,但也许有充分的理由。 第三个问题可以帮助我解释答案:如果使用多列组成复合主键,与代理/人工键相比,此方法是否具有特定优势?我主要是在性能,维护,管理等方面进行思考?

5
“防止保存需要重新创建表的更改”的负面影响
前言 我今天修改了SQL Server 2008中的一列,将数据类型从currency(18,0)更改为(19,2)。 我从SQL Server中收到错误消息“所做的更改要求删除并重新创建下表”。 在争夺答案之前,请阅读以下内容: 我已经知道在“ 工具”►“选项”►“设计器”►“表和数据库设计器”►取消选中 “防止保存需要重新创建表的更改” 框,这是一个选项。 ...所以不要回答! 实际问题 我的实际问题是其他问题,如下所示: 这样做有没有负面影响/可能的弊端? 取消选中此框后,实际上是否会自动删除并重新创建表? 如果是这样,该表副本是否是源表的100%精确副本?


12
如何在C#程序中执行存储过程
我想从C#程序执行此存储过程。 我在SqlServer查询窗口中编写了以下存储过程,并将其保存为stored1: use master go create procedure dbo.test as DECLARE @command as varchar(1000), @i int SET @i = 0 WHILE @i < 5 BEGIN Print 'I VALUE ' +CONVERT(varchar(20),@i) EXEC(@command) SET @i = @i + 1 END 编辑: using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; namespace AutomationApp …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.