急:Sqlserver表中一字段,我要把它加修改为一个标识列.SQL语句怎么写. (100分)

  • 主题发起人 主题发起人 小甘
  • 开始时间 开始时间

小甘

Unregistered / Unconfirmed
GUEST, unregistred user!
急:Sqlserver表中一字段,我要把它加修改为一个标识列.SQL语句怎么写.
 
可以通过企业管理器来做
 
我是写在程序的,所以要用SQL语句.
给位帮帮忙!
很急的。
 
看看SQL Server的 Books Online你要的东西上面有。
 
alter table abc
alter keyfield int identity(1,1)
就是修改主键的属性,
后面加identity(1.1)标识列从1开始,每次加1
你试一下,
不保证完全通过
 
Alter table tablename column......(Books onLine)
 
to dhl2001
不行,不能通过.
Sqlserver的帮助也查过,好象没有我所需要的信息
 
这样可以不:
先创建一个表,和原来的字段基本一致,不过对主关键字段增加了标识列属性,然后再将原表
中的数据导入,删除原表,将新表改名。
怎么用SQL实现,自己写吧!
 
to:荷塘新月
谢谢,但这样不行,不符合程序要求,我现在就想修改结构.
不想这样换来换去.
 
请各位帮帮忙!
 
兄弟:
我已经对MSSQL跟踪过了:
在SQL Server EnterPrise Manager中,把一个字段改在标识列
MSSQL确实是采用了笨办法,---如荷塘新月兄所示差不多。

而且,SQL语句中,象dhl2001这样,确实行不通。

-----供参考
 
to gong666
你说你进行了SQL语句执行的跟踪.
那你的那条把字段改为标识列的语句怎么写的.
可以告诉我吗?
只要行,100归你!
 
先删除此列,再添加不行吗
先添加,后删除,再更改呢
 
在表中直接建上你要改名的列,
然后把原列的所有属性(数据,主外建,外表与本列的约束等)移植到新列上
删除原列
 
好象只能象荷塘新月那样做 [:(]
 
SQL SERVER是这样做的:

BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
GO
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
COMMIT
BEGIN TRANSACTION
CREATE TABLE dbo.Tmp_test
(
a1 int NOT NULL IDENTITY (1, 1),
a2 char(10) NULL
) ON [PRIMARY]
GO
SET IDENTITY_INSERT dbo.Tmp_test ON
GO
IF EXISTS(SELECT * FROM dbo.test)
EXEC('INSERT INTO dbo.Tmp_test(a1, a2)
SELECT a1, a2 FROM dbo.test TABLOCKX')
GO
SET IDENTITY_INSERT dbo.Tmp_test OFF
GO
DROP TABLE dbo.test
GO
EXECUTE sp_rename 'dbo.Tmp_test', 'test'
GO
COMMIT
 
新增
alter table abc
add keyfield int identity(1,1)
修改
alter table abc
modify keyfield int identity(1,1)
 
请问楼主有没有财务凭证用的表格控件?能否发一份给我?谢谢
Email: delphilai@163.com QQ:67906994
 
后退
顶部