iT邦幫忙

0

SQL 右鍵編輯前200個資料列(出現錯誤訊息:沒有更新任何資料列)

SQL 右鍵編輯前200個資料列
在更新資料的時候,出現錯誤訊息:沒有更新任何資料列,
請問我應該如何修改?
https://ithelp.ithome.com.tw/upload/images/20171114/20107022sZAaW4yN2y.png
https://ithelp.ithome.com.tw/upload/images/20171114/20107022HFwW4eWPDk.png

看更多先前的討論...收起先前的討論...
timloo iT邦研究生 2 級 ‧ 2017-11-14 13:46:32 檢舉
1。可以一次新增一筆試試。
2。table至少有一主鍵(primary key , 不允許null ),主鍵可以是一欄位,或多欄位。insert 和update時,能明確知道更新那些data。
3。欄位名稱取英文,會不會好點?中英夾雜,怪怪的,程式語言可通過select來存取嗎?
4。"更新或刪除的資料值不會使資料列成唯一 ",這意思,可能是你太多一模一樣的空白列了,db沒法識別這一空白列和另一空白列那裏不同。
Winnie iT邦新手 5 級 ‧ 2017-11-14 13:50:21 檢舉
1。一次新增一筆一樣出現錯誤
2。我還沒有設主Key,打算等資料新增完畢再設
3。(無奈...)
4。已經允許Null了有差嗎
timloo iT邦研究生 2 級 ‧ 2017-11-14 14:52:06 檢舉
2. 先設主key才對吧!!! oracle 老一點的版本,是不設主key,就不讓輸入資料的。所以會習慣先設主key
純真的人 iT邦研究生 5 級 ‧ 2017-11-15 15:02:18 檢舉
解決方式~重新建立新資料表吧~
前面多一個主key
查詢舊的資料表時,多一攔是產生連續的序號
Row_Number(實際完成日 order by) Over() as key_sort

也就是
insert int 新資料表
select Row_Number() Over( order by 實際完成日) as key_sort
,*
from 舊的資料表

1 個回答

0
allenlwh
iT邦新手 1 級 ‧ 2017-11-14 14:29:09

1.沒有設定主Key,DB不知道你要改哪一筆資料,所以沒有更新任何資料列
2.先在前面加一個欄位idx,設為 int IDENTITY(1,1),這樣填資料就不會有問題。
3.最後填完所有資料後,再將一個你喜歡的欄位設定為Key,再把這個欄位拿掉就好了。

看更多先前的回應...收起先前的回應...
Winnie iT邦新手 5 級 ‧ 2017-11-14 15:33:25 檢舉

但我設主Key的時候,會出現下圖
https://ithelp.ithome.com.tw/upload/images/20171114/20107022hG33R6ekcm.png

allenlwh iT邦新手 1 級 ‧ 2017-11-14 15:50:36 檢舉
新增key前
CREATE TABLE [dbo].[test_tmp](
	[date1] [date] NULL,
	[wo_no] [varchar](50) NULL,
	[serial_check] [nvarchar](50) NULL,
	[project_check] [nvarchar](50) NULL
) ON [PRIMARY]

直接下命令,新增一個Key (idx)
ALTER TABLE dbo.test_tmp
ADD idx INT IDENTITY(1,1)
GO

ALTER TABLE dbo.test_tmp
ADD CONSTRAINT PK_test_tmp
PRIMARY KEY CLUSTERED (idx)

新增key後
ALTER TABLE dbo.test_tmp 
ADD idx INT IDENTITY(1,1)
GO

ALTER TABLE dbo.test_tmp 
ADD CONSTRAINT PK_test_tmp
PRIMARY KEY CLUSTERED (idx)
allenlwh iT邦新手 1 級 ‧ 2017-11-14 17:01:44 檢舉

不好意思,不小心貼錯了

新增Key後

CREATE TABLE [dbo].[test_tmp](
	[date1] [date] NULL,
	[wo_no] [varchar](50) NULL,
	[serial_check] [nvarchar](50) NULL,
	[project_check] [nvarchar](50) NULL,
	[idx] [int] IDENTITY(1,1) NOT NULL,
 CONSTRAINT [PK_test_tmp] PRIMARY KEY CLUSTERED 
(
	[idx] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
小魚 iT邦新手 2 級 ‧ 2017-11-15 00:32:51 檢舉

無法插入Null,表示你不允許Null的欄位,但是沒有給他值...

我要發表回答

立即登入回答