Questions tagged «sql-server»

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

29
最喜欢的性能调优技巧
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 当您有需要性能调整的查询或存储过程时,首先要尝试哪些操作?

6
SQL Server数据库中的身份增量跃升
在我的其中一个表Fee中,SQL Server 2012数据库标识增量的列“ ReceiptNo”突然开始跳到100s,而不是1,具体取决于以下两件事。 如果是1205446,则跳至1206306;如果是1206321,则跳至1207306;如果是1207314,则跳至1208306。如下图所示发生。 重新启动计算机时会出现此问题

19
SQL确定最少连续访问天数?
以下用户历史记录表包含给定用户每天(在UTC的24小时内)访问网站的每一条记录。它有成千上万条记录,但每个用户每天只有一条记录。如果用户当天没有访问该网站,则不会生成任何记录。 ID UserId CreationDate ------ ------ ------------ 750997 12 2009-07-07 18:42:20.723 750998 15 2009-07-07 18:42:20.927 751000 19 2009-07-07 18:42:22.283 我正在寻找的是对此表具有良好性能的SQL查询,该查询告诉我哪些用户ID连续(n)天访问了该网站,却没有一天丢失。 换句话说,该表中有(n)个记录具有连续(前一天或后一天)日期的记录?如果序列中缺少任何一天,则该序列将中断并且应从1重新开始;否则,序列将重新开始。我们正在寻找在此连续几天没有间断的用户。 当然,此查询与特定的Stack Overflow标志之间的任何相似之处纯属巧合。.::)

12
是NOLOCK(Sql Server提示)不好的做法吗?
我的业务是制作并非关键任务的网站和应用程序->例如。银行软件,太空飞行,重症监护监控应用程序等。您明白了。 因此,使用大量的免责声明,在某些Sql语句中使用NOLOCK提示是否不好?几年前,一位SQL管理员提出建议,如果我对“脏读”感到满意,则应该使用NOLOCK,这会给我系统带来更多的性能,因为每次读都不会锁定表/行/其他。 还告诉我,如果遇到僵局,这是一个很好的解决方案。因此,我开始遵循这种想法几年了,直到一个sql专家帮助我提供了一些随机代码,并注意到sql代码中的所有NOLOCKS。礼貌地责骂我,他试图向我解释(为什么这不是一件好事),我有点迷路了。我觉得他的解释的实质是“这是一个解决更严重问题的创可贴解决方案……特别是在您遇到僵局的情况下。因此,请解决问题的根源。 我最近对此进行了一些搜索,发现了这篇文章。 那么,请问一些sql db专家老师能启发我吗?

6
更改SQL Server中的架构绑定视图引用的列的大小
我正在尝试使用以下方法在sql server中更改列的大小: ALTER TABLE [dbo].[Address] ALTER COLUMN [Addr1] [nvarchar](80) NULL Addr1原本长度的地方40。 它失败,引发此错误: The object 'Address_e' is dependent on column 'Addr1'. ALTER TABLE ALTER COLUMN Addr1 failed because one or more objects access this column. 我尝试对其进行阅读,似乎是因为某些视图引用了此列,而且SQL Server似乎实际上正在尝试删除引发错误的列。 Address_e 是由先前的数据库管理员创建的视图。 还有其他方法可以更改列的大小吗?
124 sql  sql-server 


4
实际示例,何时在SQL中使用OUTER / CROSS APPLY
我一直在CROSS / OUTER APPLY和一位同事一起研究,我们正在努力寻找在哪里使用它们的真实示例。 我已经花了很多时间研究什么时候应该在内部联接上使用交叉申请?和谷歌搜索,但主要的(唯一的)示例似乎很奇怪(使用表中的行数来确定要从另一个表中选择多少行)。 我认为这种情况可能会受益于OUTER APPLY: 联系人表(每个联系人包含1条记录)通信条目表(每个联系人可以包含n个电话,传真,电子邮件) 但是,使用子查询,通用表表达式OUTER JOIN以及RANK()和OUTER APPLY似乎都表现相同。我猜这意味着该方案不适用于APPLY。 请分享一些真实的例子,并帮助解释该功能!

7
SQL Server:PIVOTing字符串数据的示例
试图找到一些简单的SQL Server PIVOT示例。我发现的大多数示例都涉及对数字进行计数或求和。我只想透视一些字符串数据。例如,我有一个查询,返回以下内容。 Action1 VIEW Action1 EDIT Action2 VIEW Action3 VIEW Action3 EDIT 我想使用PIVOT(如果可能的话)使结果如下: Action1 VIEW EDIT Action2 VIEW NULL Action3 VIEW EDIT 使用PIVOT功能甚至可能吗?
124 sql-server  tsql  pivot 

3
如何将现有的SQL Server登录名连接到同名的现有SQL Server数据库用户
是否有SQL Server命令将单个数据库的用户连接到同名数据库服务器的登录名? 例如: 数据库服务器-默认实例 数据库:TestDB 服务器登录 -TestUser TestDB上的现有用户-TestUser 如果我尝试使TestUser登录名成为TestDB数据库的用户,则“用户,组或角色”已经存在。 有人知道将数据库用户分配给服务器登录名的简便方法吗?
124 sql  sql-server 

11
如何复制SQL表中的记录,但换出新行的唯一ID?
这个问题很接近我的需求,但是我的情况略有不同。源表和目标表是相同的,并且主键是唯一标识符(guid)。当我尝试这个: insert into MyTable select * from MyTable where uniqueId = @Id; 由于试图复制主键,因此我显然遇到了违反主键约束的情况。实际上,我根本不想复制主键。相反,我想创建一个新的。另外,我想选择性地复制某些字段,而将其他字段保留为空。为了使事情变得更复杂,我需要使用原始记录的主键,并将其插入副本中的另一个字段(PreviousId字段)中。 我敢肯定有一个简单的解决方案,我只是对TSQL不够了解而已。

4
如何在T-SQL中为数据库名称使用变量?
我在脚本的多个位置使用了数据库名称,并且希望能够快速更改它,因此我正在寻找类似以下内容: DECLARE @DBNAME VARCHAR(50) SET @DBNAME = 'TEST' CREATE DATABASE @DBNAME GO ALTER DATABASE @DBNAME SET COMPATIBILITY_LEVEL = 90 GO ALTER DATABASE @DBNAME SET RECOVERY SIMPLE GO 但这是行不通的。那么编写此代码的正确方法是什么?
123 sql-server 

4
SQL Server':setvar'错误
我正在尝试在T-SQL中创建一些脚本变量,如下所示: /* Deployment script for MesProduction_Preloaded_KLM_MesSap */ GO SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; SET NUMERIC_ROUNDABORT OFF; GO :setvar DatabaseName "MesProduction_Preloaded_KLM_MesSap" 但是,运行此命令时,出现错误,指出“':'附近的语法不正确”。我究竟做错了什么?
123 sql  sql-server  tsql 

6
如何在SQL Server中删除表变量?我是否应该这样做?
我在脚本中有一个表变量(不是存储过程)。两个问题: 如何删除表变量?删除表@varName会出现“错误的snytax”错误。 我应该一直这样做吗?我听说这是个好习惯。这样的小脚本真的有必要吗? 这是我的代码: Declare @projectList table( name varchar(40) NOT NULL); Insert Into @projectList Values ('BCR-00021') Select * From @projectList Drop Table @projectList -- does not work

2
SQL Output子句是否可能返回未插入的列?
我已经对数据库进行了一些修改,并且需要将旧数据迁移到新表中。为此,我需要填充一个表(ReportOptions),该表从原始表(Practice)中获取数据,并填充第二个中间表(PracticeReportOption)。 ReportOption (ReportOptionId int PK, field1, field2...) Practice (PracticeId int PK, field1, field2...) PracticeReportOption (PracticeReportOptionId int PK, PracticeId int FK, ReportOptionId int FK, field1, field2...) 我进行了查询,以获取从练习到ReportOptions所需的所有数据,但是我无法填写中间表 --Auxiliary tables DECLARE @ReportOption TABLE (PracticeId int /*This field is not on the actual ReportOption table*/, field1, field2...) DECLARE @PracticeReportOption TABLE (PracticeId int, ReportOptionId …
123 sql  sql-server 

8
为SQL Server设置Maven依赖项
我正在开发一个Portlet,可以在其中对SQL Server数据库进行Hibernate访问。我为此设置了maven依赖项,并尝试以与MySql相同的方式找出SQL Server连接器。 如果我搜索SQL Server连接器,我的Google搜索仍然仅提供Mysql。正确的Maven依赖值是多少?

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.