突然的出差

题记:

对于每一个工作的人来说,第一次出差永远都是期待,忐忑,兴奋亦或挫折,然而终究让人无法忘怀。如果算上实习,小菜工作也快一年了,终于迎来了人生中的第一次出差,决定记录一下出差的点滴和经验,供自己回忆和其他小菜参考。

 

第一天     什么,下午出差?!!!! 够慌张!          2011.03.25  中午 12:30 星期五

小M:“什么?下午出差? ”

小菜:“可是今天是周五,明天是周末,我回家打的要1个小时,我的行李和资料都没有准备...”

小M:“是的,已经决定了,抓紧吧,下午6点飞机,不要迟到了!”

小菜:“哦。。。”

 

是的,对于这次出差,小菜早有准备,最初准备的时间大概要推算到2010年的11月份。没错,小菜的神经一直绷紧,一直在准备,直到昨天还背着电脑来上班。。。可能是因为准备的时间太久了,或是明天是周末,总之,懈怠了。于是,事情发生了,意料之外,情理之中。

 

用了30分钟,准备电脑,资料,听经理交代出差的需要的各项事宜,离开公司,出发!

刚刚离开公司,小菜就碰到了第一个问题,打的!

 

虽然今天不是周末,而且是中午。可是杭州的的士真的很难打,无论我对各位的哥如何哼抛媚眼,搔首弄姿,各位的哥就是不看我一眼。正午的太阳晒的我头晕目眩,身体却冷汗直流,领导的话,不停想在耳边,“不要迟到,不要迟到,不要。。。”。晕了半个小时,终于一位好心的的哥发现了我。二话不说,回家!

 

补充一下,和我一起出差还有另外一个同事,一位老员工,早我一年,也住在滨江,不过离我住处很远。我们的任务就是回家准备东西,还要去公司的基地取一些设备,最后出发去机场。

 

上车后,脑袋就开始飞速的回家各种路线的利弊,经过我和同事、司机师傅的讨论,最后决定,先把同事送到家,然后去我家,由我来取设备,最后接同事一起去机场。可能是由于自己太紧张了,只用了15分钟收拾行李。太慌张了,直到上飞机前我一直都害怕自己忘记了什么东西。不过后来事实证明我确实忘记了,还好鼠标而已。

 

在司机大哥的帮助下,我们在16点不到的时候到达机场,提前了2个多小时。不过有点要说。司机大哥,你看似忠厚,也太坑人了。从滨江到机场,本来40分钟的车程,你开了1个30小时,最后花了快300多大洋,你也太黑了吧!还好,最后赶上了飞机,就不和你计较了。

 

到了机场,顺利的通过了安检,进入了候机室。 也许可能是太顺利了,不顺利的事马上就来了。是的,你猜对了,飞机晚点,而且一晚就是一个半小时。没办法,等吧。时间就在无聊,微博,发呆,微博,。。。中过去,终于在快7点30的时候,登上了飞机。

 

虽然这不是我第一次坐飞机,然而在飞机起飞的那一刻,看着这么个庞然大物飞上了天,我真的蛮兴奋的。

 

人类真的是太牛*了!

 

飞机上,一切都如它应该的那样,boring的飞行知识普及,漂亮的空姐,好喝的饮料,鸡肋的晚餐,以及害怕飞机遭遇空难的忐忑。看着满满的机舱,不知道怎么,我总觉得飞机不远的将来会和火车一样,我还隐约的想起了王宝强。。。

 

1小时50分钟,和火车相比,不算长。很快过去了,除了耳朵偶有不适,其他还可以。

 

22点,到了机场。来到了广东,刷新了我南方旅行的最远记录。机场门口有分公司的同事来接待,辗转了快1个半小时,终于来到了酒店。要是平时,早都睡了。可是这是广东,吃个夜宵去吧。于是和同事两个人,在午夜12点的时候,在一个小面馆,狼吞虎咽。。。  广东的第一餐,云吞面。

 

回到宾馆,才发现自己真的累了,洗完澡,就钻到被窝里,睡到第二天早晨。

 

总结一下第一天的收获,有如下几点:

1.要时刻备份和分类好资料,永远做好准备。

2.要认识路,否则容易被骗。

3.不要太慌张,沉稳很重要。

 

写的有点像流水帐,汗颜汗颜。。。。

 

 

 

 

 

 

 

<think>嗯,用户给的这段SQL代码在SQL Server里报语法错误,我得仔细看看哪里有问题。首先,用户用的是IF EXISTS条件判断,然后根据结果执行不同的SELECT语句。不过,两个分支都是SELECT * FROM formtable_main_9,这看起来有点奇怪,可能用户是想根据是否存在formtable_main_133中的记录来决定查询formtable_main_9的方式?或者可能有其他意图,但代码逻辑上两个分支是一样的,这本身不会导致语法错误,不过可能用户简化了问题? 接下来,我需要检查语法结构。在SQL Server中,IF...ELSE的语法通常是这样的: IF EXISTS (SELECT ...) BEGIN -- 语句 END ELSE BEGIN -- 语句 END 看起来结构是对的。那问题可能出在SELECT语句本身或者标点符号上?比如,是否漏掉了分号?在SQL Server中,有时候在IF语句前如果有其他语句,可能需要用分号终止前面的语句。但用户提供的代码片段中,IF是独立的,可能不需要分号。不过,在某些情况下,比如使用CTE或者某些特定语句时,分号是必须的。但这里可能不是这个问题。 另外,检查SELECT子句是否正确。比如,SELECT 1 FROM ... 这里是对的,EXISTS只需要检查是否有行返回,1是常见的做法。然后两个分支的SELECT都是有效的,所以这里应该没问题。 可能的语法错误点在于BEGIN和END的使用是否正确。每个BEGIN和END是否配对?用户的代码中每个BEGIN都有对应的END,所以结构是对的。那问题可能出现在哪里呢? 突然想到,SQL Server中,如果IF语句是批处理中的第一个语句,可能需要前面没有其他语句,或者在之前的语句有分号。例如,如果前面有语句没有用分号结束,可能会导致解析错误。但用户提供的代码可能是一个单独的批处理,所以这可能不是问题。 另一个可能性是,用户可能在编写动态SQL或者嵌套在其他代码块中,导致作用域问题,但根据提供的代码片段,这似乎不相关。 或者,用户可能是在某个上下文中不允许使用IF语句,比如在函数或者视图中,但通常存储过程或脚本中是允许的。用户可能是在SSMS的查询窗口中直接运行这段代码? 或者,是否存在关键字冲突?比如formtable_main_133或formtable_main_9是否存在,或者字段名lclx是否正确?不过这些是运行时错误,而不是语法错误。语法错误应该在解析阶段就出现。 哦,对了,用户可能在ELSE后面有没有BEGIN?但代码中确实有BEGIN和END,所以没问题。 还有一种可能,是否在IF和EXISTS之间有其他内容?比如,用户可能不小心添加了多余的字符,比如中文的括号或引号?例如,检查单引号是否正确,是否用了全角的引号,比如’出差’中的引号是否是英文单引号。如果用户从其他地方复制代码,可能存在隐藏的字符或者格式问题,导致语法错误。例如,全角的单引号会导致语法错误,而看起来和英文单引号相似。 比如,在用户提供的代码中,lclx ='出差',这里的单引号是否正确?可能用户实际代码中用的是中文的引号,比如‘出差’,这会导致错误。因为SQL Server需要英文的单引号。 所以,可能问题出在字符串的引号上。如果用户复制代码时,单引号被替换成全角字符,就会导致语法错误。例如,'出差' 是否正确,是否用的是英文的',而不是中文的‘或’。 此外,检查表名和字段名是否正确,是否有保留字需要转义,比如lclx是否是保留字?不过lclx不太可能是保留字,但如果有问题,可能需要用方括号括起来,比如[lclx]。 但如果是表名或字段名错误,通常是运行时错误,而不是语法错误。语法错误更多是结构上的问题。 总结可能的错误点: 1. 字符串中的引号使用了全角字符,导致语法错误。 2. 缺少必要的分号,特别是在某些情况下,比如之前有语句未结束。 3. 表名或字段名有特殊字符未转义,但这里似乎没有。 4. 代码中存在不可见的特殊字符,比如换行符或编码问题。 根据用户提供的代码,可能的错误是字符串中的单引号使用了全角字符,导致语法错误。需要检查'lclx ='出差''中的引号是否为英文半角符号。 例如,正确的应该是: WHERE lclx = '出差' 而如果用户代码中的引号是全角的,比如: WHERE lclx =‘出差’ 这会导致语法错误,因为SQL Server期望的是英文单引号。 此外,检查整个语句是否有其他全角符号,比如括号、分号等。 所以,解决方案是确保所有引号、括号都是英文半角字符,并检查语句结构是否正确。</think>在SQL Server中,该代码报语法错误的主要原因可能是**字符串引号使用了全角字符**或**语句结构不完整**。以下是逐步分析: --- ### 一、错误复现与原因分析 #### 1. 全角引号问题 在以下片段中: ```sql IF EXISTS (SELECT 1 FROM formtable_main_133 WHERE lclx ='出差') -- 注意这里的引号 '出差' 是否实际为全角符号:’出差’ ``` 如果`'出差'`中的单引号实际是全角字符(如中文引号 `‘’`),会导致SQL无法识别字符串边界,从而报语法错误。 #### 2. 语句结构问题 虽然`IF...ELSE`逻辑看似正确,但需注意: - `BEGIN...END`必须严格配对。 - 如果此代码嵌入存储过程或脚本中,需确保没有缺失其他关键字(如`AS`、`GO`)。 --- ### 二、修正后的代码 ```sql IF EXISTS (SELECT 1 FROM formtable_main_133 WHERE lclx = '出差') -- 确保引号为英文半角 BEGIN SELECT * FROM formtable_main_9 END ELSE BEGIN SELECT * FROM formtable_main_9 END ``` --- ### 三、关键验证点 1. **检查引号类型** 确保所有单引号`'`为英文半角符号,而非全角符号`‘’`。 2. **检查表名和字段名** - 确认表名`formtable_main_133`和`formtable_main_9`存在。 - 确认字段`lclx`存在且类型匹配(如`lclx`是字符串类型)。 3. **简化逻辑(可选)** 由于`IF`和`ELSE`分支执行相同的操作,可直接简化为: ```sql SELECT * FROM formtable_main_9 ``` --- ### 四、常见错误场景 | 错误类型 | 示例 | 修正后 | |----------------|-------------------|------------------| | 全角引号 | `WHERE lclx =‘出差’` | `WHERE lclx = '出差'` | | 缺失`BEGIN...END` | `IF EXISTS(...) SELECT ...` | 添加`BEGIN...END`块 | | 语句未结束 | 前序代码缺少分号`;` | 在`IF`前添加分号`;` | --- ### 五、终建议 1. 使用纯英文环境编写SQL代码。 2. 在复杂逻辑中显式使用`BEGIN...END`。 3. 通过工具(如SSMS)的语法高亮功能检查符号类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值