全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3747
推到 Plurk!
推到 Facebook!

SQL 自動編號

尚未結案
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-04 20:36:36 IP:61.221.xxx.xxx 未訂閱
想請教各位先進,我原先的資料庫是微軟的ACCESS 2000,由於筆數已超過20,000多筆,所以將資料庫匯入微軟的SQL Server,問題在於原先的資料庫,有一個欄位A0,資料類型是「自動編號」,但轉到SQL Server後返而不知如何設計該欄位,雖然大人回答如下: MS SQL 是使用 identity 的欄位屬性, 可以用在 int, smallint 資料型態上. 請自行試試, 下面的 table 中的 id_num 就是會自動編號的一個欄位. CREATE TABLE new_employees( id_num int IDENTITY(1,1), fname varchar (20), minit char(1), lname varchar(30)) 但試了好幾天,仍然摸不著頭緒,不知是否有人遇到相同的問題,是否能指導該怎麼做,謝謝各位先進。 我的資料庫 ccpm 資料表 pm3d 擬自動編號的欄位為 A0 是否能依據我的資料庫,指導我該如何,將現成資料庫之A0單位,在DELPHI裡變有自動編號的功能?感謝再感謝。
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-04 21:42:18 IP:61.221.xxx.xxx 未訂閱
在 MS SQL 中, 對應於 access 資料表中的自動編號欄位, 就是將 MS SQL 資料表中的欄位設為 identity 屬性即可, 請問有什麼設定上的困難嗎?     建立你的資料表的方式為:
create table pm3d 
(
  A0 int IDENTITY(1,1),
  A1 char(5),
  .....
)
這樣就可以了. 若是已經匯入 ms sql 資料庫的話, 可以使用 Enterprise Manager 來進行修改欄位的屬性, 將 A0 該欄位的[識別] 設定為 [是] 即可, 若是要用下 sql command 的方式比較麻煩, 無法使用 alter table table_name alter column 的方式, 必須新增一個 temp table 後, 配合 啟動識別插入 的功能來進行, 將原資料寫入 temp table 後, drop 原 table 完成後再將 temp table 改名為原來的 table 名, 記得要使用 transaction 以免修改失敗, 詳細 command 如下:
BEGIN TRANSACTION
  CREATE TABLE dbo.Tmp_pm3d
        (
        A0 int NOT NULL IDENTITY (1, 1),
        A1 char(5) NULL
        )  ON [PRIMARY]
  SET IDENTITY_INSERT dbo.Tmp_pm3d ON
  IF EXISTS(SELECT * FROM dbo.pm3d)
         EXEC('INSERT INTO dbo.Tmp_pm3d (A0, A1)
                SELECT A0, A1 FROM dbo.pm3d TABLOCKX')
  SET IDENTITY_INSERT dbo.Tmp_pm3d OFF
  DROP TABLE dbo.pm3d
  EXEC sp_rename 'dbo.Tmp_pm3d', 'pm3d'
COMMIT
PRINT '作業成功'
jawtair
一般會員


發表:30
回覆:92
積分:24
註冊:2003-04-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-07 16:08:13 IP:61.221.xxx.xxx 未訂閱
懷著半信半疑的心情,使用 Enterprise Manager 來進行修改欄位的屬性    將 A0 該欄位的[識別] 設定為 [是]    再去新增一筆資料,真的可以吔,太奇妙了 感謝 >
系統時間:2024-06-29 18:31:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!