iT邦幫忙

0

網上如何查詢這個 SQL 錯誤

這是自己寫的 SQL , 所以網上找不到處理方法

訊息 105,層級 15,狀態 1,行 53535
遺漏字元字串 'ca
' 後面的引號。
訊息 102,層級 15,狀態 1,行 53535
接近 'ca
' 之處的語法不正確。

SQL 程式碼

USE [fruit]
GO
/****** Object:  Table [dbo].[employee]    Script Date: 2019/2/9 下午 09:19:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[employee](
	[employeeid] [uniqueidentifier] NULL,
	[name] [nvarchar](50) NULL,
	[shift] [int] NULL,
	[breaktype] [int] NULL,
	[id] [nvarchar](50) NULL,
	[car] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[fruits]    Script Date: 2019/2/9 下午 09:19:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[fruits](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[name] [nvarchar](max) NULL,
	[time] [varchar](50) NULL,
	[afc] [nvarchar](max) NULL,
	[afc1] [nvarchar](max) NULL,
	[memo] [nvarchar](max) NULL,
	[car] [nvarchar](max) NULL,
 CONSTRAINT [PK_fruitsA] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[fruitstemp]    Script Date: 2019/2/9 下午 09:19:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[fruitstemp](
	[key] [uniqueidentifier] NOT NULL,
	[id] [int] NOT NULL,
	[date] [date] NULL,
	[employeeid] [uniqueidentifier] NULL,
	[employeename] [nvarchar](50) NULL,
	[name] [nvarchar](50) NULL,
	[time] [varchar](4) NULL,
	[afc] [nvarchar](50) NULL,
	[afc1] [nvarchar](50) NULL,
	[car] [nvarchar](50) NULL,
	[createtime] [datetime] NULL,

https://ithelp.ithome.com.tw/upload/images/20190408/201043267taw7iv94B.png

看更多先前的討論...收起先前的討論...
anniecat iT邦新手 3 級 ‧ 2019-04-08 11:03:15 檢舉
有嘗試雙擊錯誤訊息看它會指到哪一行嗎?
alex9453 iT邦新手 2 級 ‧ 2019-04-08 11:32:08 檢舉
謝謝回答 , 眼拙看不出哪裡有錯誤

沒錯誤行號

INSERT [dbo].[fruitstemp] ([key], [id], [date], [employeeid], [employeename], [name], [time], [afc], [afc1], [car], [createtime]) VALUES (N'81d46224-d6d9-4c51-97f7-fed0f048297b', 409, CAST(N'2019-01-15' AS Date), N'33b2c4ce-ddea-4b53-9dda-94c73fbd3fec', N'lostshifts', N'日龍工程行', N'1100', N'臺北市內湖區安康路336巷3號3樓', N'臺北市文山區羅斯福路6段171號', NULL, CAST(N'2019-01-15T22:02:06.363' AS DateTime))
按訊息102 , 跳到的行數

INSERT [dbo].[fruitstemp] ([key], [id], [date], [employeeid], [employeename], [name], [time], [afc], [afc1], [car], [createtime]) VALUES (N'b68f534b-a704-49d2-a45a-fed42c2e1d0e', 1343, CAST(N'2018-12-24' AS Date), N'33b2c4ce-ddea-4b53-9dda-94c73fbd3fec', N'lostshifts', N'光陽養生館', N'1015', N'臺北市中山區長春路82號', N'臺北市萬華區三水街126號房屋地下層', NULL, CAST(N'2018-12-24T17:05:30.377' AS DateTime))
你的去識別化呢
我記得用.sql輸入資料,行數太多會有錯誤訊息,如果只做一次的話,把他多拆成幾個部分吧。(ex 1~5000筆資料做一次,5001~10000筆資料做一次。)
alex9453 iT邦新手 2 級 ‧ 2019-04-08 12:43:24 檢舉
leonliu777 我這是網上下載資料 , 而且是商店資料 , 沒有隱私問題 , 需要去識別話嗎
? 我是系統換 ssd , 所以才重裝 sql , 沒換之前也是執行同樣檔案的指令 , 都沒有這個問題 , 所以應該不是資料太多的問題
froce iT邦大師 1 級 ‧ 2019-04-08 13:03:15 檢舉
N'日龍工程行', N'1100', N'臺北市內湖區安康路336巷3號3樓', N'臺北市文山區羅斯福路6段171號...
這樣還不弄去識別化,膽子真夠大的。

換硬碟去用匯出匯入,不要用自己寫的。
alex9453 iT邦新手 2 級 ‧ 2019-04-08 13:33:39 檢舉
我把地址店名塗黑 , 就算去識別化了嗎 ?
anniecat iT邦新手 3 級 ‧ 2019-04-08 14:03:27 檢舉
土法煉鋼的方法就是一筆一筆執行insert找錯誤
alex9453 iT邦新手 2 級 ‧ 2019-04-09 06:20:43 檢舉
謝謝回復 , 我刪除資料庫 , 再重建資料庫 , 再執行 fruit.sql 就可以了
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
純真的人
iT邦大師 1 級 ‧ 2019-04-08 11:07:42
最佳解答

你的匯入資料有含單引號~

我推測你的name欄位,有人的姓名是用到單引號的~

看更多先前的回應...收起先前的回應...
小魚 iT邦大師 1 級 ‧ 2019-04-08 11:10:38 檢舉

也是, 基本上我都是用參數查詢...

希望小a能懂XD

alex9453 iT邦新手 2 級 ‧ 2019-04-08 11:23:11 檢舉

謝謝回答 , 眼拙看不出哪裡有錯誤

沒錯誤行號

INSERT [dbo].[fruitstemp] ([key], [id], [date], [employeeid], [employeename], [name], [time], [afc], [afc1], [car], [createtime]) VALUES (N'81d46224-d6d9-4c51-97f7-fed0f048297b', 409, CAST(N'2019-01-15' AS Date), N'33b2c4ce-ddea-4b53-9dda-94c73fbd3fec', N'lostshifts', N'日龍工程行', N'1100', N'臺北市內湖區安康路336巷3號3樓', N'臺北市文山區羅斯福路6段171號', NULL, CAST(N'2019-01-15T22:02:06.363' AS DateTime))

按訊息102 , 跳到的行數

INSERT [dbo].[fruitstemp] ([key], [id], [date], [employeeid], [employeename], [name], [time], [afc], [afc1], [car], [createtime]) VALUES (N'b68f534b-a704-49d2-a45a-fed42c2e1d0e', 1343, CAST(N'2018-12-24' AS Date), N'33b2c4ce-ddea-4b53-9dda-94c73fbd3fec', N'lostshifts', N'光陽養生館', N'1015', N'臺北市中山區長春路82號', N'臺北市萬華區三水街126號房屋地下層', NULL, CAST(N'2018-12-24T17:05:30.377' AS DateTime))

按訊息105呢?
我檢查你的訊息102是沒問題的~
那105?

alex9453 iT邦新手 2 級 ‧ 2019-04-08 12:37:59 檢舉

謝謝回答 , 我按 102 跟 105 錯誤訊息 , 怎麼都跳到同一行

這是我按 102 往下算三行

INSERT [dbo].[fruitstemp] ([key], [id], [date], [employeeid], [employeename], [name], [time], [afc], [afc1], [car], [createtime]) VALUES (N'3dafa2ce-2a55-47b8-9a3c-fed7a5d07418', 1046, CAST(N'2019-01-16' AS Date), N'e2d0d75c-c6f3-4306-8699-5212ec3fc68e', N'呂聰明', N'加美麗工作室', N'1645', N'臺北市中山區農安街32號7樓之10', N'臺北市萬華區環河南路1段187號', NULL, CAST(N'2019-01-16T22:06:18.353' AS DateTime))

那你把第53535行貼出來看看~(參考我圖中如何到第幾行的顯示)

https://ithelp.ithome.com.tw/upload/images/20190408/20061369wIsQijvIO1.png

alex9453 iT邦新手 2 級 ‧ 2019-04-08 13:29:06 檢舉
INSERT [dbo].[fruitstemp] ([key], [id], [date], [employeeid], [employeename], [name], [time], [afc], [afc1], [car], [createtime]) VALUES (N'b68f534b-a704-49d2-a45a-fed42c2e1d0e', 1343, CAST(N'2018-12-24' AS Date), N'33b2c4ce-ddea-4b53-9dda-94c73fbd3fec', N'lostshifts', N'光陽養生館', N'1015', N'臺北市中山區長春路82號', N'臺北市萬華區三水街126號房屋地下層', NULL, CAST(N'2018-12-24T17:05:30.377' AS DateTime))

https://ithelp.ithome.com.tw/upload/images/20190408/201043269LyBNr3hzZ.png

那你有可能SQL查詢太長~被截斷~
你分次匯入試試~

alex9453 iT邦新手 2 級 ‧ 2019-04-08 15:07:46 檢舉

我是系統換 ssd , 所以才重裝 sql , 沒換之前也是執行同樣檔案的指令 , 都沒有這個問題 , 所以應該不是資料太多的問題

但你的問題~目前就只能這樣試試~才知道為什麼了~

wingkawa iT邦新手 3 級 ‧ 2019-04-08 15:56:13 檢舉

你就先試試吧,把sql分成兩半執行看看
並不是不可能,我記得sql是可以設定指令長度的,然後從過去經驗來推測,你根本不會記得自己上次(或這次)安裝有設定了啥東西

alex9453 iT邦新手 2 級 ‧ 2019-04-09 06:20:58 檢舉

謝謝回復 , 我刪除資料庫 , 再重建資料庫 , 再執行 fruit.sql 就可以了

1
小魚
iT邦大師 1 級 ‧ 2019-04-08 11:06:53

你先找出那一行的語法是什麼吧...

alex9453 iT邦新手 2 級 ‧ 2019-04-08 11:24:37 檢舉

謝謝回答 , 眼拙看不出哪裡有錯誤

沒錯誤行號

INSERT [dbo].[fruitstemp] ([key], [id], [date], [employeeid], [employeename], [name], [time], [afc], [afc1], [car], [createtime]) VALUES (N'81d46224-d6d9-4c51-97f7-fed0f048297b', 409, CAST(N'2019-01-15' AS Date), N'33b2c4ce-ddea-4b53-9dda-94c73fbd3fec', N'lostshifts', N'日龍工程行', N'1100', N'臺北市內湖區安康路336巷3號3樓', N'臺北市文山區羅斯福路6段171號', NULL, CAST(N'2019-01-15T22:02:06.363' AS DateTime))

按訊息102 , 跳到的行數

INSERT [dbo].[fruitstemp] ([key], [id], [date], [employeeid], [employeename], [name], [time], [afc], [afc1], [car], [createtime]) VALUES (N'b68f534b-a704-49d2-a45a-fed42c2e1d0e', 1343, CAST(N'2018-12-24' AS Date), N'33b2c4ce-ddea-4b53-9dda-94c73fbd3fec', N'lostshifts', N'光陽養生館', N'1015', N'臺北市中山區長春路82號', N'臺北市萬華區三水街126號房屋地下層', NULL, CAST(N'2018-12-24T17:05:30.377' AS DateTime))
harrytsai iT邦新手 1 級 ‧ 2019-04-08 11:37:56 檢舉

CAST 前面只有一個引號,但是下面那裏有兩個引號,我不知道多一個引號的用意是什麼

alex9453 iT邦新手 2 級 ‧ 2019-04-08 11:42:30 檢舉

你是說這兩行 , CAST 前面不是一樣嗎 ?

沒錯誤

409, CAST(N'2019-01-15' AS Date), 

訊息 102

1343, CAST(N'2018-12-24' AS Date),
0
PPTaiwan
iT邦好手 1 級 ‧ 2019-04-08 13:32:25

你的 SQL 執行起來都沒有問題..

SQL 版本是那一版

alex9453 iT邦新手 2 級 ‧ 2019-04-08 13:35:42 檢舉

https://ithelp.ithome.com.tw/upload/images/20190408/20104326wU1cSjQNRJ.png

就是執行 fruit.sql 這個檔案 , 出現以下錯誤訊息

訊息 105,層級 15,狀態 1,行 53535
遺漏字元字串 'ca
' 後面的引號。
訊息 102,層級 15,狀態 1,行 53535
接近 'ca
' 之處的語法不正確。
PPTaiwan iT邦好手 1 級 ‧ 2019-04-08 18:34:21 檢舉

你提供的圖示是 SSMS 管理程式版本號, MS SQL 版本號是選擇 DESKTOP-9RALP71 按右鍵/屬性

我以你的語法寫新增與寫入都可以...https://ithelp.ithome.com.tw/upload/images/20190408/201048518nyvWlk47p.png

alex9453 iT邦新手 2 級 ‧ 2019-04-09 06:20:32 檢舉

謝謝回復 , 我刪除資料庫 , 再重建資料庫 , 再執行 fruit.sql 就可以了

我要發表回答

立即登入回答