我注意到Visual Studio 2008在sql中的列名称周围放置了方括号.括号是否有任何优势?当我手工编写T-SQL代码时,我从不打扰他们.
示例:Visual Studio:SELECT [column1],[column2]等...
我自己的方式:SELECT column1,column2等...
有谁知道如何将SQL Azure数据库复制到我的开发机器?我想停止支付云中的开发数据库,但这是获取生产数据的最佳方式.我将我的生产数据库复制到一个新的开发数据库,但我希望在同一个数据库本地.
有什么建议?
我正在使用此查询重命名数据库:
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
Run Code Online (Sandbox Code Playgroud)
但它在排除时显示错误:
消息5030,级别16,状态2,行1
无法独占锁定数据库以执行操作.
我的查询有什么问题吗?
我可以在SQL Server编辑器中创建区域(喜欢#region和#endregion在C#中)?
SQL Server中的数据库和架构之间有什么区别?两者都是表和数据的容器.
如果删除了Schema,那么该架构中包含的所有表是否也会自动删除,或者在删除数据库时是否删除它们?
我一直在使用这一段时间:
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的性能问题.
假设我有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上创建索引.当我再次创建执行计划时,两个表都执行索引查找.估计的子树成本降低了很多.
我的问题是:
除了FK有助于关系约束,它还有其他用处吗?它是否提高了查询性能?
我应该在所有表中的所有FK列(如Products.CategoryId)上创建索引吗?
我有一个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语句,如果它们存在则不执行任何操作.
查询历史记录是否存储在某些日志文件中?如果是的话,你能告诉我如何找到他们的位置吗?如果没有,你能就如何看待它给我任何建议吗?
我在本地计算机上创建了一个数据库,然后执行了一个名为tables.baktable 的备份DataLabTables.
我将该备份移动到没有该表的远程计算机并尝试进行还原但出现以下错误:
System.Data.SqlClient.SqlError:在'c:\ Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DataLabTables上尝试'RestoreContainer :: ValidateTargetForCreation'时,操作系统返回错误'5(访问被拒绝.)'密度纤维板".
如果这是问题,我如何修复我的权利?
sql-server ×10
sql ×3
azure ×1
backup ×1
database ×1
foreign-keys ×1
indexing ×1
logging ×1
performance ×1
region ×1
restore ×1
ssms ×1
string ×1
syntax ×1
t-sql ×1