Questions tagged «sql-server»

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

11
LEFT OUTER JOIN如何返回比左表中更多的记录?
我有一个非常基本的LEFT OUTER JOIN,可以从左表中返回所有结果,并从更大的表中返回一些其他信息。左表包含4935条记录,但是当我将其左移到另一个表中时,记录数会大大增加。 据我所知,绝对的福音是,LEFT OUTER JOIN将返回左表中的所有记录,并返回右表中的匹配记录,并为所有无法匹配的行返回空值,因此,我的理解是返回的行数不可能超过左表中存在的行数,但是这都是一样的! SQL查询如下: SELECT SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID FROM SUSP.Susp_Visits LEFT OUTER JOIN DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum 也许我在语法上犯了一个错误,或者我对LEFT OUTER JOIN的理解不完整,希望有人能解释这是怎么发生的? 后记 感谢您提供的出色答案,现在我对LEFT OUTER JOINS的了解要好得多,但是有人可以建议修改此查询的方式,以便使我只获得与左表中一样多的返回记录吗? 此查询纯粹是为了生成报告,重复的匹配项只会使事情变得混乱。 /后记

7
SQL JOIN vs IN性能?
在某些情况下,使用JOIN或IN将为我提供正确的结果...哪一种通常具有更好的性能,为什么?它在多大程度上取决于您正在运行的数据库服务器?(仅供参考,我正在使用MSSQL)





9
sql语句中方括号[]的用途是什么?
我注意到Visual Studio 2008在sql中的列名周围放置了方括号。支架有什么优势吗?当我编写代码T-SQL时,我再也不会打扰他们。 例: 视觉工作室: SELECT [column1], [column2] etc... 我自己的方式: SELECT column1, column2 etc...
163 sql-server  syntax 


4
我可以在SQL Server的添加列语句中创建命名默认约束吗?
在SQL Server中,我在表上有一个新列: ALTER TABLE t_tableName ADD newColumn NOT NULL 失败是因为我指定了NOT NULL而未指定默认约束。该表不应具有默认约束。 为了解决这个问题,我可以使用默认约束创建表,然后将其删除。 但是,似乎没有任何方法可以指定默认约束作为此语句的一部分,因此,要摆脱它,我唯一的方法是在sys.default_constraints中查找一个存储过程。表。 对于可能经常发生的操作而言,这有点混乱/冗长。有人对此有更好的解决方案吗?

6
如何使用SELECT * INTO tempTable from CTE Query创建临时表
我有一个要从中创建临时表的MS SQL CTE查询。我不确定该怎么办,因为它会导致Invalid Object name错误。 下面是整个查询供参考 SELECT * INTO TEMPBLOCKEDDATES FROM ;with Calendar as ( select EventID, EventTitle, EventStartDate, EventEndDate, EventEnumDays,EventStartTime,EventEndTime, EventRecurring, EventStartDate as PlannedDate ,EventType from EventCalender where EventActive = 1 AND LanguageID =1 AND EventBlockDate = 1 union all select EventID, EventTitle, EventStartDate, EventEndDate, EventEnumDays,EventStartTime,EventEndTime, EventRecurring, dateadd(dd, 1, …

23
插入更新触发器如何确定是插入还是更新
我需要在表A上编写一个插入,更新触发器,该操作将从表B的所有行中删除所有行,该表的某一列(例如Desc)的值类似于在表A的列中插入/更新的值(例如Col1)。我将如何编写它,以便同时处理Update和Insert案例。我将如何确定是否为更新或插入执行了触发器。


15
在SQL Server中修剪前导零的更好技术?
我一直在使用这一段时间: SUBSTRING(str_col, PATINDEX('%[^0]%', str_col), LEN(str_col)) 但是最近,我发现包含“ 00000000”之类的所有“ 0”字符的列存在问题,因为它从未找到匹配的非“ 0”字符。 我见过的另一种技术是使用TRIM: REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0') 如果存在嵌入的空格,则会出现问题,因为当空格变成“ 0”时,它们将变成“ 0”。 我试图避免标量UDF。我发现SQL Server 2005中的UDF有很多性能问题。

15
SQL Server中的LIMIT 10..20
我正在尝试做类似的事情: SELECT * FROM table LIMIT 10,20 要么 SELECT * FROM table LIMIT 10 OFFSET 10 但是使用SQL Server 我发现的唯一解决方案看起来过于矫kill过正: SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM sys.databases ) a WHERE row > 5 and row <= 10 我还发现: SELECT TOP 10 * FROM …

13
如何以编程方式更改标识列的值?
我有一个MS SQL 2005数据库,其中的表Test带有column ID。ID是一个标识列。 我在此表中有行,并且所有行都有其对应的ID自动递增值。 现在,我想像这样更改此表中的每个ID: ID = ID + 1 但是当我这样做时,我得到一个错误: 无法更新标识列“ ID”。 我已经试过了: ALTER TABLE Test NOCHECK CONSTRAINT ALL set identity_insert ID ON 但这不能解决问题。 我需要在此列设置标识,但是我还需要不时更改值。所以我的问题是如何完成这项任务。

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.