标签: sql-server

在sql语句中使用方括号[]有什么用?

我注意到Visual Studio 2008在sql中的列名称周围放置了方括号.括号是否有任何优势?当我手工编写T-SQL代码时,我从不打扰他们.

示例:Visual Studio:SELECT [column1],[column2]等...

我自己的方式:SELECT column1,column2等...

sql-server syntax

152
推荐指数
7
解决办法
12万
查看次数

如何将SQL Azure数据库复制到本地开发服务器?

有谁知道如何将SQL Azure数据库复制到我的开发机器?我想停止支付云中的开发数据库,​​但这是获取生产数据的最佳方式.我将我的生产数据库复制到一个新的开发数据库,​​但我希望在同一个数据库本地.

有什么建议?

sql-server database-migration azure azure-sql-database

152
推荐指数
9
解决办法
9万
查看次数

在SQL Server 2008 R2中重命名数据库时出错

我正在使用此查询重命名数据库:

ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
Run Code Online (Sandbox Code Playgroud)

但它在排除时显示错误:

消息5030,级别16,状态2,行1
无法独占锁定数据库以执行操作.

我的查询有什么问题吗?

sql sql-server sql-server-2008-r2

152
推荐指数
7
解决办法
12万
查看次数

sql server #region

我可以在SQL Server编辑器中创建区域(喜欢#region#endregion在C#中)?

sql-server region

151
推荐指数
5
解决办法
11万
查看次数

数据库和架构之间的区别

SQL Server中的数据库和架构之间有什么区别?两者都是表和数据的容器.

如果删除了Schema,那么该架构中包含的所有表是否也会自动删除,或者在删除数据库时是否删除它们?

database sql-server sql-server-2005 database-schema

151
推荐指数
5
解决办法
19万
查看次数

更好的修剪SQL Server中前导零的技术?

我一直在使用一段时间:

SUBSTRING(str_col, PATINDEX('%[^0]%', str_col), LEN(str_col))
Run Code Online (Sandbox Code Playgroud)

但是最近,我发现所有"0"字符的列都有问题,例如'00000000',因为它永远找不到匹配的非"0"字符.

我见过的另一种技术是使用TRIM:

REPLACE(LTRIM(REPLACE(str_col, '0', ' ')), ' ', '0')
Run Code Online (Sandbox Code Playgroud)

如果存在嵌入空格,则会出现问题,因为当空格变回"0"时,它们将变为"0".

我试图避免使用标量UDF.我在SQL Server 2005中发现了很多UDF的性能问题.

sql t-sql sql-server string sql-server-2005

150
推荐指数
5
解决办法
24万
查看次数

外键是否提高了查询性能?

假设我有2个表,Products和ProductCategories.两个表都与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;
Run Code Online (Sandbox Code Playgroud)

当我创建执行计划时,表ProductCategories执行集群索引查找,这是期望的.但对于表产品,它执行集群索引扫描,这让我怀疑.为什么FK无助于提高查询性能?

所以我必须在Products.CategoryId上创建索引.当我再次创建执行计划时,两个表都执行索引查找.估计的子树成本降低了很多.

我的问题是:

  1. 除了FK有助于关系约束,它还有其他用处吗?它是否提高了查询性能?

  2. 我应该在所有表中的所有FK列(如Products.CategoryId)上创建索引吗?

sql sql-server indexing performance foreign-keys

148
推荐指数
3
解决办法
8万
查看次数

如果不存在SQL Server插入最佳实践

我有一个Competitions结果表,一方面保存团队成员的名字和他们的排名.

另一方面,我需要维护一个独特的竞争对手名称表:

CREATE TABLE Competitors (cName nvarchar(64) primary key)
Run Code Online (Sandbox Code Playgroud)

现在我在第一个表中有大约200,000个结果,当竞争对手表空时,我可以执行此操作:

INSERT INTO Competitors SELECT DISTINCT Name FROM CompResults
Run Code Online (Sandbox Code Playgroud)

查询只需要大约5秒钟就可以插入大约11,000个名称.

到目前为止,这不是一个关键应用程序,因此我可以考虑每月截断一次竞争对手表,当我收到大约10,000行的新竞争结果时.

但是,当新的和现有的竞争对手增加新的结果时,最佳做法是什么?我不想截断现有的竞争对手表

我只需要为新的竞争对手执行INSERT语句,如果它们存在则不执行任何操作.

sql-server insert-update

148
推荐指数
5
解决办法
32万
查看次数

如何在SQL Server Management Studio中查看查询历史记录

查询历史记录是否存储在某些日志文件中?如果是的话,你能告诉我如何找到他们的位置吗?如果没有,你能就如何看待它给我任何建议吗?

sql-server logging ssms

148
推荐指数
11
解决办法
44万
查看次数

SQL Server还原错误 - 拒绝访问

我在本地计算机上创建了一个数据库,然后执行了一个名为tables.baktable 的备份DataLabTables.

我将该备份移动到没有该表的远程计算机并尝试进行还原但出现以下错误:

System.Data.SqlClient.SqlError:在'c:\ Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DataLabTables上尝试'RestoreContainer :: ValidateTargetForCreation'时,操作系统返回错误'5(访问被拒绝.)'密度纤维板".

如果这是问题,我如何修复我的权利?

sql-server backup sql-server-2005 restore

148
推荐指数
6
解决办法
14万
查看次数