存储过程报错,找原因找了好久,以后是 ' 好的问题。结果发现是变量长度不够。不过对 ‘ 的应用有了新的理解。转发一篇关于 ' 应用的文章
1、 ' '是字符界定符,告诉SQL你输入的是字符,SQL已经知道@sitemtext是字符类型,所以不需要。
2、LIKE '%XXX% ' 可以拆分为 '% ' + 'XXX ' + '% ', 'XXX ' = @sitemtext。
3、EXEC执行字符串:@sitemtext对于EXEC来说变量,但对于EXEC内部的字串指令来说,它是常量,在运行EXEC之前,@sitemtext必然有个确定值(比如@sitemtext= 'TEST '),如果用1点代替3点,则变成“……NID = TEST……”,那字串指令将TEST解析为对象名。
4、道理同上。
比较笨的方法(也是避免错误的最佳方法):
A、全部先不加点:
exec (declare mycursor cursor for select top @maxitems SID,NID,NTime from (select top @mycount * from V_PC_DOWNUPDATE where BName like '%@sitemtext+% ') as MyTable order by NTime desc)
B、加首尾两点:
exec ( 'declare mycursor cursor for select top @maxitems SID,NID,NTime from (select top @mycount * from V_PC_DOWNUPDATE where BName like '%@sitemtext+% ') as MyTable order by NTime desc ')
C、给字串指令解析为数字的变量加1点:
exec ( 'declare mycursor cursor for select top ' + @maxitems + ' SID,NID,NTime from (select top ' + @mycount + ' * from V_PC_DOWNUPDATE where BName like '%@sitemtext+% ') as MyTable order by NTime desc ')
C、给字串指令解析为字符的变量加3点:
exec ( 'declare mycursor cursor for select top ' + @maxitems + ' SID,NID,NTime from (select top ' + @mycount + ' * from V_PC_DOWNUPDATE where BName like ' '% ' + @sitemtext + '% ' ') as MyTable order by NTime desc ')
D、检查在()里面,除了变量和“+”号,全部变成红色。
分享到:
相关推荐
SQL 中存储过程中 SQL 语句的单引号和双引号问题 在 SQL 中,单引号和双引号的问题是一个常见的混淆点,特别是在存储过程中编写 SQL 语句时。下面将对此问题进行详细的解释和总结。 一、单引号和双引号的基本概念 ...
### 如何解决SQL注入问题:全面解析与防范策略 #### SQL注入概述 SQL注入是一种常见的安全漏洞,攻击者通过在应用程序的输入字段中插入恶意SQL语句,利用这些语句来操控数据库,获取未授权的数据访问,修改或破坏...
SQL数据库中的锁问题
将Sql Server 2000中的数据库备份文件还原到Sql Server 2005中是一个常见的问题。在这个过程中,我们需要了解Sql Server 2000和Sql Server 2005之间的差异,以便正确地还原数据库备份文件。下面是相关的知识点: 1....
在MySQL数据库中运行包含中文字符的SQL语句时,经常会遇到中文显示为乱码的问题。这一现象不仅降低了开发效率,还可能导致数据错误。本文将详细介绍如何彻底解决MySQL运行SQL语句中文乱码的问题。 #### 一、理解...
12. **调试和错误诊断**:最后,手册会介绍如何使用Oracle提供的调试工具和技巧来追踪和解决PL/SQL程序中的问题。 这份"PL/SQL最新中文手册"对于任何想要深入理解并有效利用PL/SQL进行Oracle数据库开发的人来说,都...
### 关于SQL Server 2008中数据库连接问题及.bak文件的导入方法 #### 一、导入.bak文件到数据库的操作步骤 在SQL Server 2008中,有时候我们需要将备份文件(.bak文件)恢复到现有的数据库中。下面详细介绍如何将....
SQL面试问题集通常包含多种级别的SQL问题,从基础知识点到高级概念,这些问题旨在考察求职者对SQL的掌握程度以及他们解决数据库相关问题的能力。 在数据库领域中,SQL语言是核心技能之一。尽管SQL语言有标准规范,...
在本文中,我们将讨论SQLEXPRESS服务无法启动的问题,并提供解决方案。该问题通常是由TCP/IP协议的冲突引起的,下面我们将详细介绍问题的成因和解决方法。 一、问题描述 SQLEXPRESS服务无法启动,是一种常见的错误...
标题 "php mssql扩展SQL查询中文字段名解决方法" 描述了一个常见的问题,即使用PHP的mssql扩展处理SQL Server数据库中的中文字段名时遇到的查询错误。问题的关键在于,虽然SQL语句在SQL Server中可以正常运行,但在...
在本文中,我们将讨论 SQL SERVER 字符集问题之一解决方案,解决 equal to 运算中 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CS_AS" 之间的排序规则冲突。 一、问题背景 在 SQL SERVER 中,默认的字符集是 SQL_Latin1_...
【首届中文NL2SQL挑战赛数据集】是一个专注于自然语言处理与数据库查询的竞赛,其主要目标是将中文的自然语言问题(NL)转化为结构化的SQL(Structured Query Language)查询,以此来解决表格数据的问题。NL2SQL的...
4. **智能分析**:内置的静态代码分析工具能够检查SQL脚本中的潜在问题,如性能瓶颈、未使用的变量、不安全的动态SQL等,提前发现并解决潜在问题。 5. **集成开发环境(IDE)支持**:SQL Prompt 9可以与Visual ...
《SQL Cookbook中文版》中的SQL 是计算机世界的语言,在用关系数据库开发报表时,将数据放入数据库以及从数据库中取出来,都需要SQL 的知识。很多人以一种马马虎虎的态度在使用SQL,根本没有意识到自己掌握着多么...
在系统运行过程中,当遇到性能问题时,SQLMonitor能迅速定位问题SQL,为优化提供方向;在持续集成和持续部署(CI/CD)流程中,SQLMonitor可以作为质量控制的一部分,确保数据库操作的正确性和效率。 总的来说,SQL...
解决两个问题:vs自带数据库sql server的中文插入乱码问题、查找当前数据库名 (查找数据库名在文章中间,自己往下翻吧,不单拎出来了) vs自带数据库sql server的中文插入乱码问题: 如图所示,我插入表的中文变成...
然而,在实际应用中,我们经常会遇到导入超大 SQL 脚本文件的问题。本文将介绍如何使用 osql 工具来导入超大 SQL 脚本文件。 什么是 osql? osql 是 SQL Server 提供的一个命令行工具,用于执行 SQL 语句和运行 ...
SQL优化是数据库管理中的关键环节,它涉及到提升查询性能、减少资源消耗以及改善系统整体效率。SQL优化软件和工具能够帮助数据库管理员(DBA)和开发人员找出性能瓶颈,优化查询逻辑,从而提高数据库系统的响应速度...
在实际应用中,SQL Optimizer可以解决以下问题: 1. **慢速查询**:当用户遇到查询响应时间过长的问题时,该工具能提供性能改进建议,通过调整索引、重写查询或改变JOIN顺序等方式提升查询速度。 2. **资源占用过...
SQL 语法与问题集 通用办公生产应用程序。 使用图形用户界面 (GUI) 的应用程序,使用户得以选择包含要查看的数据的表和列。 使用通用语言语句确定用户所要查看数据的应用程序。 将其数据存储于 SQL ...