Questions tagged «sql-server»

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

6
如何在sql脚本中指定“关闭现有连接”
我正在SQL Server 2008中对架构进行积极的开发,并且经常想重新运行我的放置/创建数据库脚本。当我跑步 USE [master] GO IF EXISTS (SELECT name FROM sys.databases WHERE name = N'MyDatabase') DROP DATABASE [MyDatabase] GO 我经常收到这个错误 Msg 3702, Level 16, State 4, Line 3 Cannot drop database "MyDatabase" because it is currently in use. 如果右键单击对象资源管理器窗格中的数据库,然后从上下文菜单中选择“删除”任务,则有一个复选框可以“关闭现有连接” 有没有办法在脚本中指定此选项?
153 sql  sql-server 

3
SQL Server NOLOCK并加入
背景:我有一个对性能至关重要的查询,我想运行它,并且我不关心脏读。 我的问题是;如果使用联接,是否也必须在联接上指定NOLOCK提示? 例如; 是: SELECT * FROM table1 a WITH (NOLOCK) INNER JOIN table2 b WITH (NOLOCK) ON a.ID = b.ID 相当于: SELECT * FROM table1 a WITH (NOLOCK) INNER JOIN table2 b ON a.ID = b.ID 还是我需要(NOLOCK)在联接上指定提示,以确保不锁定联接表?
153 sql  sql-server  nolock 

7
SQL Server插入(如果不存在)最佳实践
我有一个Competitions结果表,一方面保存了团队成员的姓名和排名。 另一方面,我需要维护一个唯一的竞争对手名称表: CREATE TABLE Competitors (cName nvarchar(64) primary key) 现在我在第一个表中有大约200,000个结果,当竞争对手表为空时,我可以执行以下操作: INSERT INTO Competitors SELECT DISTINCT Name FROM CompResults 查询只需要大约5秒钟即可插入大约11,000个名称。 到目前为止,这并不是一个至关重要的应用程序,因此当我收到包含约10,000行的新比赛结果时,我可以考虑每月一次截断Competitors表。 但是,如果有新的和现有的竞争对手加入新的结果,最佳实践是什么?我不想截断现有竞争对手表 我只需要对新竞争者执行INSERT语句,如果存在,则什么也不做。

30
如何解决错误“命名管道提供程序,错误40-无法打开与'SQL Server'的连接”?
我似乎无法从站点连接到我的数据库。我收到此错误: 命名管道提供程序,错误:40-无法打开与SQL Server的连接 我尝试使用本地IP地址以及公共IP地址进行连接。我试过了: 是的,站点可以与服务器通信 已启用命名管道/ TCP。 允许远程连接。 Windows防火墙已关闭 在Windows防火墙中为端口1433创建了一个例外。 在SQL Server配置管理器中启用了所有功能。 我还能在这里做什么?


8
SQL Server循环-如何遍历一组记录
如何遍历select中的一组记录? 举例来说,我有一些记录希望循环浏览,并对每条记录执行某些操作。这是我选择的原始版本: select top 1000 * from dbo.table where StatusID = 7 谢谢
151 sql  sql-server 




12
SQL中的CROSS JOIN与INNER JOIN
CROSS JOIN和之间有什么区别INNER JOIN? 交叉加入: SELECT Movies.CustomerID, Movies.Movie, Customers.Age, Customers.Gender, Customers.[Education Level], Customers.[Internet Connection], Customers.[Marital Status], FROM Customers CROSS JOIN Movies 内部联接: SELECT Movies.CustomerID, Movies.Movie, Customers.Age, Customers.Gender, Customers.[Education Level], Customers.[Internet Connection], Customers.[Marital Status] FROM Customers INNER JOIN Movies ON Customers.CustomerID = Movies.CustomerID 哪一种更好,为什么我要使用其中一种?

21
“未选择要还原的备份集” SQL Server 2012
我有一个启用了文件流的SQL Server 2012数据库。但是,当我备份它并尝试在另一台SQL Server 2012实例(在另一台计算机上)上还原它时,我仅收到以下消息: 没有选择要还原的备份集。 甚至没有一行得到更多的解释。怎么了 没有文件流的所有其他数据库都可以,并且可以成功还原。它和文件流有关吗?我应该安装修补程序或类似的东西。

9
外键是否可以提高查询性能?
假设我有2个表格,产品和产品类别。两个表在CategoryId上都有关系。这就是查询。 SELECT p.ProductId, p.Name, c.CategoryId, c.Name AS Category FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE c.CategoryId = 1; 当我创建执行计划时,表ProductCategories会执行群集索引查找,这与预期的一样。但是对于表Products,它执行集群索引扫描,这使我感到怀疑。为什么FK不能帮助提高查询性能? 因此,我必须在Products.CategoryId上创建索引。当我再次创建执行计划时,两个表都执行索引查找。并且估计的子树成本大大降低了。 我的问题是: 除了FK有助于关系约束之外,它还有其他用途吗?它会提高查询性能吗? 是否应该在所有表的所有FK列(如Products.CategoryId)上创建索引?



4
向两个列的组合添加唯一约束
我有一张桌子,不知何故,同一个人Person两次进入了我的桌子。现在,主键只是一个自动编号,但是还有两个我想强制保持唯一性的字段。 例如,这些字段是: ID Name Active PersonNumber 我只希望1条记录具有唯一的PersonNumber和Active =1。 (因此,两个字段的组合必须是唯一的) 在SQL Server中现有表上的最佳方法是什么,我可以做到这一点,因此,如果其他人使用与现有值相同的值进行插入,则插入失败,因此我不必在应用程序代码中担心这一点。
149 sql  sql-server 

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.