Re: [SQL ] 一句TSQL很像是Bug的更新語法

看板Database作者 (普小莉)時間12年前 (2014/01/16 14:31), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串2/3 (看更多)
推文怕太長,回一下 如果你要對SQL內欄位資料撈出來的金額批次算匯率怎麼辦? select 金額*30 as 計算後金額 from 資料表x +號不就只是一個計算方式嗎@@ 還是我有誤會你的意思? 以下可試試(拿昨天建的那個資料表繼續用XD if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[學生]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[學生] GO CREATE TABLE [dbo].[學生]( [學號] [int] IDENTITY(1,1) NOT NULL, [姓名] [nvarchar](50) NOT NULL, [年級] [nvarchar](50) NOT NULL, CONSTRAINT [PK_學生] PRIMARY KEY CLUSTERED ( [學號] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO insert [學生]( 姓名,年級) values('A01',1) insert [學生]( 姓名,年級) values('A02',2) insert [學生]( 姓名,年級) values('A03',1) insert [學生]( 姓名,年級) values('A04',1) insert [學生]( 姓名,年級) values('A05',3) insert [學生]( 姓名,年級) values('A06',1) insert [學生]( 姓名,年級) values('A07',1) insert [學生]( 姓名,年級) values('A08',2) insert [學生]( 姓名,年級) values('A09',3) insert [學生]( 姓名,年級) values('A10',1) select 姓名,年級,年級*30 AS 年級加一 from 學生if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[學生]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[學生] GO CREATE TABLE [dbo].[學生]( [學號] [int] IDENTITY(1,1) NOT NULL, [姓名] [nvarchar](50) NOT NULL, [年級] [nvarchar](50) NOT NULL, CONSTRAINT [PK_學生] PRIMARY KEY CLUSTERED ( [學號] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO insert [學生]( 姓名,年級) values('A01',1) insert [學生]( 姓名,年級) values('A02',2) insert [學生]( 姓名,年級) values('A03',1) insert [學生]( 姓名,年級) values('A04',1) insert [學生]( 姓名,年級) values('A05',3) insert [學生]( 姓名,年級) values('A06',1) insert [學生]( 姓名,年級) values('A07',1) insert [學生]( 姓名,年級) values('A08',2) insert [學生]( 姓名,年級) values('A09',3) insert [學生]( 姓名,年級) values('A10',1) select 姓名,年級,年級*30 AS 年級加一 from 學生 ※ 引述《forkome (初心者)》之銘言: : 各位大大好 : 最近小弟在Trouble Shooting時看到一句SQL,所使用的語言是C# + MS SQL : Update Table set Column1 = Column1 + 1 Where Column2 = +@Param : Cmd.Parameters.Add.......(@param) : 我以為這句不會執行會掛 : 但Column2 =+@Param 居然不影響執行結果,請問+號對MS SQL來說 : 有什麼特殊用法嗎?還是單純的不嚴謹沒有被Compile抓出來而已? -- 「你長的好像我第五個女朋友喔!」 『是喔!這麼巧?那你交過幾個女朋友?』 「四個。」 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.112.242

02/06 08:36, , 1F
因為擺的位置太奇怪,例子是 = +@ 而非 +=
02/06 08:36, 1F

02/06 08:37, , 2F
非常感謝回覆
02/06 08:37, 2F

02/14 10:32, , 3F
因為變數是 @param吧,不是+@,是+與@param....
02/14 10:32, 3F
文章代碼(AID): #1IrtpT52 (Database)
文章代碼(AID): #1IrtpT52 (Database)