标签: sql-server

删除SQL Server中的记录后重置标识种子

我已将记录插入SQL Server数据库表.该表定义了主键,并且自动增量标识种子设置为"是".这主要是因为在SQL Azure中,每个表都必须定义主键和标识.

但是由于我必须从表中删除一些记录,这些表的标识种子将受到干扰,并且索引列(自动生成的增量为1)将受到干扰.

删除记录后,如何重置标识列,以使列按数字顺序递增?

标识列不用作数据库中任何位置的外键.

sql database sql-server sql-server-2008 azure-sql-database

628
推荐指数
14
解决办法
91万
查看次数

重命名列SQL Server 2008

我正在使用SQL Server 2008和Navicat.我需要使用SQL重命名表中的列.

ALTER TABLE table_name RENAME COLUMN old_name to new_name;
Run Code Online (Sandbox Code Playgroud)

此声明不起作用.

sql sql-server alter-table sql-server-2008

617
推荐指数
8
解决办法
108万
查看次数

多个索引与多列索引

我刚刚在SQL Server 2005中的表中添加了一个索引,它让我思考.创建1个索引和定义多个列之间的区别在于每个列要索引1个索引.

是否有某些原因应该用于另一个?

例如

Create NonClustered Index IX_IndexName On TableName
(Column1 Asc, Column2 Asc, Column3 Asc)
Run Code Online (Sandbox Code Playgroud)

Create NonClustered Index IX_IndexName1 On TableName
(Column1 Asc)

Create NonClustered Index IX_IndexName2 On TableName
(Column2 Asc)

Create NonClustered Index IX_IndexName3 On TableName
(Column3 Asc)
Run Code Online (Sandbox Code Playgroud)

database sql-server indexing

611
推荐指数
5
解决办法
28万
查看次数

SQL Server中的char,nchar,varchar和nvarchar有什么区别?

是什么意思nvarchar

是什么区别char,nchar,varchar,和nvarchar在SQL Server?

sql-server varchar

598
推荐指数
10
解决办法
56万
查看次数

如何创建一个也允许空值的唯一约束?

我希望对我将使用GUID填充的列具有唯一约束.但是,我的数据包含此列的空值.如何创建允许多个空值的约束?

这是一个示例场景.考虑这个架构:

CREATE TABLE People (
  Id INT CONSTRAINT PK_MyTable PRIMARY KEY IDENTITY,
  Name NVARCHAR(250) NOT NULL,
  LibraryCardId UNIQUEIDENTIFIER NULL,
  CONSTRAINT UQ_People_LibraryCardId UNIQUE (LibraryCardId)
)
Run Code Online (Sandbox Code Playgroud)

然后看看我正在尝试实现的代码:

-- This works fine:
INSERT INTO People (Name, LibraryCardId) 
 VALUES ('John Doe', 'AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA');

-- This also works fine, obviously:
INSERT INTO People (Name, LibraryCardId) 
VALUES ('Marie Doe', 'BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB');

-- This would *correctly* fail:
--INSERT INTO People (Name, LibraryCardId) 
--VALUES ('John Doe the Second', 'AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA');

-- This works fine this one first time: …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

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

什么是SQL Server中的"with(nolock)"?

with (nolock)当你应该/不应该使用它时,有人可以解释使用查询的含义吗?

例如,如果您的银行应用程序具有较高的事务率和某些表中的大量数据,那么哪些类型的查询可以解决?是否应该经常使用它/从不使用它?

sql-server nolock

579
推荐指数
16
解决办法
63万
查看次数

为SQL Server表自动生成INSERT语句的最佳方法是什么?

我们正在编写一个新的应用程序,在测试时,我们需要一堆虚拟数据.我通过使用MS Access将excel文件转储到相关表中来添加该数据.

我们经常要"刷新"相关表,这意味着将它们全部删除,重新创建它们,并运行已保存的MS Access追加查询.

第一部分(删除和重新创建)是一个简单的sql脚本,但最后一部分让我感到畏缩.我想要一个单一的安装脚本,它有一堆INSERT来重新生成虚拟数据.

我现在有表格中的数据.从该数据集自动生成大型INSERT语句列表的最佳方法是什么?

我能想到的唯一方法是将表保存到excel表,然后编写一个excel公式来为每一行创建一个INSERT,这肯定不是最好的方法.

我正在使用2008 Management Studio连接到SQL Server 2005数据库.

sql-server ssms code-generation

569
推荐指数
13
解决办法
45万
查看次数

SQL Server上INSERT或UPDATE的解决方案

假设一个表结构MyTable(KEY, datafield1, datafield2...).

通常我想要更新现有记录,或者如果新记录不存在则插入新记录.

实质上:

IF (key exists)
  run update command
ELSE
  run insert command
Run Code Online (Sandbox Code Playgroud)

写这个的最佳表现方式是什么?

sql database sql-server insert upsert

564
推荐指数
11
解决办法
60万
查看次数

SQL Server:CASE WHEN OREN ELSE END =>不支持OR

OR该在WHEN一个子句CASE语句不支持.我怎样才能做到这一点?

CASE ebv.db_no 
    WHEN 22978 OR 23218 OR 23219 THEN 'WECS 9500' 
    ELSE 'WECS 9520' 
END as wecs_system 
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server case case-when

556
推荐指数
7
解决办法
299万
查看次数

如何清除SQL Server事务日志?

我不是SQL专家,每当我需要做一些超出基础知识的事情时,我就会想起这个事实.我有一个不大的测试数据库,但事务日志肯定是.如何清除事务日志?

sql-server transaction-log

555
推荐指数
13
解决办法
117万
查看次数