大家帮我看看这段 存储过程 的代码有什么问题???

qibie 2008-10-18 11:05:55
Create proc selectALL
@tableName char(20),
@name char(20)
as
declare @sql varchar(1000)
if(@name = '')
set @sql='select * from '+@tableName
else
set @sql='select * from '+@tableName+' where name = '+@name

exec (@sql)
...全文
93 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
百年树人 2008-10-19
  • 打赏
  • 举报
回复
因为你的name是char型,所以where条件里要加引号


Create proc selectALL
@tableName char(20),
@name char(20)
as
declare @sql varchar(1000)
if(@name = '')
set @sql='select * from '+@tableName
else
set @sql='select * from '+ltrim(rtrim(@tableName))+' where name = '+''''+ltrim(rtrim(@name))+''''
PRINT @SQL
exec (@sql)
qibie 2008-10-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 josy 的回复:]
因为你的tableName和name定义的长度均为20,tableName倒没所谓,如果是name不加ltrim 和 rtrim的话,就会变成这样:

select * from tableName where name =' name';

这显然不是你想要的
[/Quote]

谢谢你,你是我们新人的福星

顶你
百年树人 2008-10-19
  • 打赏
  • 举报
回复
因为你的tableName和name定义的长度均为20,tableName倒没所谓,如果是name不加ltrim 和 rtrim的话,就会变成这样:

select * from tableName where name =' name';

这显然不是你想要的
qibie 2008-10-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 josy 的回复:]
因为你的name是char型,所以where条件里要加引号


SQL code
Create proc selectALL
@tableName char(20),
@name char(20)
as
declare @sql varchar(1000)
if(@name = '')
set @sql='select * from '+@tableName
else
set @sql='select * from '+ltrim(rtrim(@tableName))+' where name = '+''''+ltrim(rtrim(@name))+''''
PRINT @SQL
exec (@sql)
[/Quote]

请问,第二段的表名和条件为什么要加上 ltrim 和 rtrim 两个函数,起什么作用啊
水族杰纶 2008-10-18
  • 打赏
  • 举报
回复
--语法没什么问题
源码下载地址: https://pan.quark.cn/s/48210ff050c9 在生成具备死区间隔的脉冲宽度调制(PWM)信号时,STM32微控制器主要运用高级定时器(例如TIM1、TIM8)或通用定时器(如TIM2、TIM3、TIM4),这些定时器因其丰富的功能特性,能够支持复杂的PWM信号输出。 在当前应用场景下,死区间隔被设定为1微秒,此设置旨在电机驱动场景中防止功率开关器件的直通状态,避免电流尖峰,从而保护整个电路系统。 同时,CH1、CH2、CH3三个通道之间的相位间隔为3微秒,这种相位调制方式可用于三相电机的控制,达成对电机转矩的精准调控。 为了使STM32的定时器能够正常工作在PWM模式,需要进行一系列配置操作。 这些操作通常包括以下环节:1. **定时器初始化**:设定定时器的预分频器(Prescaler)参数,目的是获得期望的计数速率,例如,当系统时钟频率为72MHz,而目标PWM频率为50kHz时,预分频器的值应为72M/50K=1440。 2. **自动重载值(ARR)配置**:自动重载寄存器(ARR)的数值决定了PWM信号的整体周期。 以周期为20μs(对应1/50kHz)为例,ARR的值应设为20-1=19。 3. **比较通道选择**:涉及CH1、CH2、CH3等通道,它们分别与TIMx_CCR1、TIMx_CCR2和TIMx_CCR3寄存器相联系,通过设定这些寄存器的具体数值,可以控制各个通道的PWM占空比。 4. **死区时间设定**:利用TIMx_BDTR寄存器中的DTG字段来设定死区时间。 对于1微秒的死区间隔,必须依据定时器的工作模式与系统时钟速率来计算适宜的DTG参数。 5. **定时器启动**:完成所有配置后,使能定时器,PWM波形将...
代码下载链接: https://pan.quark.cn/s/38779f6f0507 《美食推荐系统的设计与实现》是一篇专注于美食推荐系统构建与运作的学术研究论文,其核心探讨的是如何设计并构建一个美食推荐系统,以更好地满足用户对美食的多样化需求并提升整体体验。该论文涵盖了美食推荐系统的需求调研、系统架构规划、系统开发执行以及系统质量检验等多个关键环节。在需求调研部分,论文首先阐述了中国餐饮行业的演进态势和城市生活节奏的提速,并强调了人们对饮食选择多样性和优化效果的追求。接着,论文强调了美食推荐系统在满足用户美食需求方面的必要性和核心价值。在系统架构规划部分,论文详细描述了美食推荐系统的整体布局和各功能模块的设计,包括用户信息管理单元、美食资讯管理单元、团购活动管理单元和推荐算法单元等。此外,论文还介绍了系统的数据结构设计和数据库构建方案,并采用了PHP+MYSQL+APACHE技术平台进行系统开发。在系统开发执行部分,论文记录了系统的构建过程,涉及前端与后端开发、数据库设计构建、系统测试及调试等环节。在系统质量检验部分,论文展示了系统的评估结果,涵盖性能测试、功能验证和安全防护测试等。该论文全面呈现了美食推荐系统的构建过程,有效满足了用户对美食的个性化需求与优化目标,展现出显著的实用价值和广阔的应用潜力。知识点:1. 美食推荐系统的需求调研,涉及中国餐饮业的发展态势、城市生活节奏的加快,以及人们对饮食选择多样化和优化效果的追求。2. 美食推荐系统的架构规划,包括系统的整体布局和功能模块设计,数据结构设计,以及采用PHP+MYSQL+APACHE技术平台进行系统开发。3. 美食推荐系统的构建过程,涵盖前端与后端开发、数据库设计构建、系统测试及调试等环节。4. 美...

34,875

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧