Questions tagged «sql-server»

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


28
检查SQL Server中是否存在表
我希望这是关于如何使用SQL语句检查SQL Server 2000/2005中是否存在表的最终讨论。 当您用Google搜索答案时,会得到很多不同的答案。有官方/后向和向前兼容的方式吗? 这是两种可能的方法。两种方法中的哪一种是标准/最佳方法? 第一种方式: IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='mytablename') SELECT 1 AS res ELSE SELECT 0 AS res; 第二种方式: IF OBJECT_ID (N'mytablename', N'U') IS NOT NULL SELECT 1 AS res ELSE SELECT 0 AS res; MySQL提供的简单 SHOW TABLES LIKE '%tablename%'; 声明。我正在寻找类似的东西。

14
获得插入行身份的最佳方法?
IDENTITY插入行的最佳方法是什么? 我了解@@IDENTITY和了解IDENT_CURRENT,SCOPE_IDENTITY但不了解它们各自的优缺点。 有人可以解释这些差异,以及何时应使用它们?
1118 sql  sql-server  tsql 

11
聚簇索引和非聚簇索引实际上是什么意思?
我对DB的接触有限,只使用DB作为应用程序程序员。我想知道Clustered和Non clustered indexes。我用谷歌搜索,发现的是: 聚集索引是一种特殊的索引,它重新排序表中记录的物理存储方式。因此,表只能有一个聚集索引。聚集索引的叶节点包含数据页。非聚集索引是一种特殊类型的索引,其中索引的逻辑顺序与磁盘上行的物理存储顺序不匹配。非聚集索引的叶节点不包含数据页。相反,叶节点包含索引行。 我在SO中发现的是聚集索引和非聚集索引之间的区别是什么?。 有人可以用简单的英语解释吗?

30
参数化SQL IN子句
如何对包含IN子句的查询进行参数化,像这样的子句? SELECT * FROM Tags WHERE Name IN ('ruby','rails','scruffy','rubyonrails') ORDER BY Count DESC 在此查询中,参数的数量可以为1到5之间的任意值。 我不希望对此(或XML)使用专用的存储过程,但是如果有一些特定于SQL Server 2008的优雅方法,我可以接受。

6
JOIN和INNER JOIN之间的区别
这两个连接将给我相同的结果: SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK 与 SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK 语句之间的性能或其他方面是否有区别? 不同的SQL实现之间是否有所不同?


22
SQL根据ID匹配从一个表更新到另一个表
我有一个与account numbers和的数据库card numbers。我将这些文件匹配到文件,将update任何卡号匹配到该帐号,所以我只使用帐号。 我创建了一个将表链接到帐户/卡数据库的视图,以返回Table ID和相关的帐号,现在我需要更新ID与帐号匹配的那些记录。 这是Sales_Import表格,其中的account number字段需要更新: LeadID AccountNumber 147 5807811235 150 5807811326 185 7006100100007267039 这是RetrieveAccountNumber表格,我需要从这里更新: LeadID AccountNumber 147 7006100100007266957 150 7006100100007267039 我尝试了以下方法,但到目前为止没有运气: UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber FROM RetrieveAccountNumber WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID = RetrieveAccountNumber.LeadID) 它将卡号更新为帐号,但是帐号被替换为 NULL

13
什么时候应该在内部联接上使用交叉应用?
使用CROSS APPLY的主要目的是什么? 我已经读过(模糊地通过Internet上的帖子),cross apply如果您要进行分区,则在选择大型数据集时可能会更有效率。(想起分页) 我也知道,CROSS APPLY不需要UDF作为右表。 在大多数INNER JOIN查询(一对多关系)中,我可以将它们重写为use CROSS APPLY,但它们始终会为我提供等效的执行计划。 谁能给我一个很好的例子,说明在CROSS APPLY哪些情况下INNER JOIN行之有效的情况下也有所作为? 编辑: 这是一个简单的示例,其中执行计划完全相同。(向我展示它们的不同之处以及cross apply更快/更高效的地方) create table Company ( companyId int identity(1,1) , companyName varchar(100) , zipcode varchar(10) , constraint PK_Company primary key (companyId) ) GO create table Person ( personId int identity(1,1) , personName varchar(100) , companyId int …


11
在SQL Server中使用JOIN更新表?
我想更新在其他表上进行联接的表中的列,例如: UPDATE table1 a INNER JOIN table2 b ON a.commonfield = b.[common field] SET a.CalculatedColumn= b.[Calculated Column] WHERE b.[common field]= a.commonfield AND a.BatchNO = '110' 但它在抱怨: 消息170,级别15,状态1,第2 行第2 行:'a'附近的语法错误。 怎么了



22
在SQL Server中的存储过程中搜索文本
我想从我所有的数据库存储过程中搜索文本。我使用下面的SQL: SELECT DISTINCT o.name AS Object_Name, o.type_desc FROM sys.sql_modules m INNER JOIN sys.objects o ON m.object_id = o.object_id WHERE m.definition Like '%[ABD]%'; 我想[ABD]在所有存储过程(包括方括号)中进行搜索,但未给出正确的结果。如何更改查询以实现此目的?


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.