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

楼主: somnolentcat (普小莉)   2014-01-16 14:31:53
推文怕太长,回一下
如果你要对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抓出来而已?
作者: forkome (初心者)   2014-02-06 08:36:00
因为摆的位置太奇怪,例子是 = +@ 而非 +=非常感谢回复
楼主: somnolentcat (普小莉)   2014-02-14 10:32:00
因为变量是 @param吧,不是+@,是+与@param....

Links booklink

Contact Us: admin [ a t ] ucptt.com