脚本中IF语句执行逻辑的困惑.
-- 待操作数据库
DECLARE @dbName nvarchar(20);
SET @dbName='as2018';
-- 当前数据库
DECLARE @curdbName nvarchar(20);
SET @curdbName=(SELECT DB_NAME());
PRINT(@curdbName)
IF @curdbName=@dbName
Begin
PRINT '已选中目标数据库 ' + @dbName;
/****** Object: Table [dbo].[PriceWay] Script Date: 01/02/2019 08:36:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[PriceWay](
[Id] [smallint] NOT NULL,
[Name] [varchar](20) NULL,
CONSTRAINT [PK_PriceWay] PRIMARY KEY NONCLUSTERED
(
[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]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[PriceWay] ([Id], [Name]) VALUES (1, N'移动平均')
INSERT [dbo].[PriceWay] ([Id], [Name]) VALUES (2, N'先进先出')
INSERT [dbo].[PriceWay] ([Id], [Name]) VALUES (3, N'后进先出')
End
F5执行脚本, 发现当前数据库即使不是'as2018'时也不提示, 仍然执行IF内的脚本, 且报错:
消息 102,级别 15,状态 1,第 17 行
'ON' 附近有语法错误。
...
不知什么原因.
相关推荐
Linux shell脚本编程if语句的使用方法(条件判断)
主要介绍了Linux shell脚本编程if语句的使用方法,大家参考使用吧
Shell脚本if else语句小结
主要介绍了Shell脚本if else语句小结,总结了Shell脚本中的if控制语句和其它语言的不同,常见的3种写法等,需要的朋友可以参考下
Shell脚本的条件测试和if条件语句使用方法
一、条件测试操作 要使Shell脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作。Shell环境根据命令执行后的返回状态值(¥?)来判断是否执行成功,当返回值为0时表示成功,否则(非0值)表示失败或异常。使用专门的测试工具——test命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立(返回值为0表示条件成立)。 使用test测试命令时,包括以下两种形式: test 条件表达式 [ 条件表达式 ] 这两种方式的作用完全相同,但通常后一种形式更为常用,需要注意的是,方括号“[“ 或 ”]”与条件表达式之间需要至少一个空格进行分隔。 1、文件测试:
关于C# if语句中并列条件的执行
C#语言中也是如此。当多个条件进行逻辑与操作的时候,判定会从表达式左边执行到右边,遇到任何一个为假,后面就都不做了。这很聪明,然而如果后面的条件会抛出异常,就是个潜在的问题。一旦之前的条件为真,就会继续执行,执行到抛出异常的条件时,程序就爆了,哈哈。 我们可以写个简单的demo试试。下面的这段代码是坑爹的,之后我会说明原因,但大家可以先从直观的层面上理解一下,最后我会给出正确的测试方法。 代码如下: static void Main(string[] args) { DataSet ds = null; if (false && ds.Tables[0].Rows.Count > 0) {
c语言if语句实例_C语言if语句和switch语句实例_If..._
1、.了解C语言的逻辑运算2、.学会使用if语句和switch语句3、.熟练掌握选择结构程序设计方法


