CREATE TABLE [dbo].[Customer](
[CusNo] [nvarchar](20) NULL,
[CusName] [nvarchar](100) NULL,
[DateIn] [nvarchar](12) NULL,
[Add1] [nvarchar](255) NULL,
[TelNoH] [nvarchar](50) NULL,
[TelNoHP] [nvarchar](11) NULL,
[DisSR] [nvarchar](50) NULL,
[DisSL] [nvarchar](50) NULL,
[DisCR] [nvarchar](50) NULL,
[DisCL] [nvarchar](50) NULL,
[DisAR] [nvarchar](50) NULL,
[DisAL] [nvarchar](50) NULL,
[ReadSR] [nvarchar](50) NULL,
[ReadSL] [nvarchar](50) NULL,
[ReadCR] [nvarchar](50) NULL,
[ReadCL] [nvarchar](50) NULL,
[ReadAR] [nvarchar](50) NULL,
[ReadAL] [nvarchar](50) NULL,
[PD] [nvarchar](50) NULL,
[R] [nvarchar](50) NULL,
[L] [nvarchar](50) NULL,
[Remarks] [nvarchar](255) NULL,
[ConSR] [nvarchar](50) NULL,
[ConSL] [nvarchar](50) NULL,
[ConCR] [nvarchar](50) NULL,
[ConCL] [nvarchar](50) NULL,
[ConAR] [nvarchar](50) NULL,
[ConAL] [nvarchar](50) NULL,
[Lens] [nvarchar](50) NULL,
[Frame] [nvarchar](50) NULL,
[Amount] [nvarchar](50) NULL,
[LastUserUpdate] [nvarchar](15) NULL,
[LastUpdateDate] [nvarchar](max) NULL
) ON [PRIMARY]
我使用的是Microsoft SQL Server 2008中,和我有一个表Customer
其中CustNo
列是主键。我有大约30,000行手动输入CustNo
。 我想更新所有的CustNo
从1开始并连续增加1直到完成记录。SQL服务器:重新安排主键ID,开始用1
什么是我必须使用的SQL查询?
[不良习惯踢:选择错误的数据类型](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-using-the- wrong-data-type.aspx) - 你应该总是使用最合适的数据类型 - 毕竟这就是他们所在的地方!如果你的'CusNo'是一个**数字** - 为什么它存储为'nvarchar(20)'?首先:它应该是一个**数字**数据类型('INT'),其次,将其作为每字符2个字节的Unicode字符串存储是非常低效的......为什么“ DateIn'也是一个字符串? – 2013-02-28 09:32:25
这是另一个程序员设计,现在他们想要升级系统,为什么我需要重新安排一切,包括数据库设计。 – 2013-02-28 09:34:47
@ChinYe告诉你的老板开火'另一个程序员',按照marc_c的建议使用正确的数据类型。 – 2013-02-28 09:45:06