• 主页
  • 基础类
  • 应用实例
  • 新技术前沿

用Exec 执行动态SQL。动态SQL中字符串变量中有点号(.)的问题

windwather 2007-01-02 10:35:49
set @vSQL=@vSQL+' delete from '+@FSrvName+'t_Item where FNumber='''+@FDeNumber+''' and FItemClassID=2001'

Execute(@vSQL)

以上动态SQL(@vSQL)中的字符串变量(@FDeNumber)值为:'03.001',执行后报错。
但字符串变量值中间没有点号时,如:'03001'则可正常执行。
求教解决办法,十万火急!!!
...全文
292 点赞 收藏 9
写回复
9 条回复
caixia615 2007年01月03日
应该是数据类型转换的缘故..
回复 点赞
jacobsan 2007年01月03日
报什么错呢?
回复 点赞
Keson168 2007年01月03日
declare @str varchar(10)
set @str='03.001'
select convert(decimal(5,3),@str)
回复 点赞
云中客 2007年01月03日
-----------------------------------
Select @vSQL='' --此处对变量进行赋值(可以为空,也可以是其它的值)
-----------------------------------

set @vSQL=@vSQL+' delete from '+@FSrvName+'t_Item where FNumber='''+@FDeNumber+''' and FItemClassID=2001'

Execute(@vSQL)
回复 点赞
marco08 2007年01月02日
declare @str varchar(10)
set @str='03.001'
select cast(@str as int)
--出错

declare @str varchar(10)
set @str='03001'
select cast(@str as int)
--OK
回复 点赞
marco08 2007年01月02日
应该是数据类型转换时出错
回复 点赞
青锋-SS 2007年01月02日
呵呵,马上也休息呀.晚安.
回复 点赞
j9988 2007年01月02日
动态SQL跟"."肯定无关,查找其它错误.

set @vSQL=@vSQL+' delete from '+@FSrvName+'t_Item where FNumber='''+@FDeNumber+''' and FItemClassID=2001'
print @vSQL --把print结果拿来执行,看错在那里.

--Execute(@vSQL)


sdhylj(青锋-SS)老弟还在线. 真不简单,我要休息了.
回复 点赞
青锋-SS 2007年01月02日
FNumber是什么类型?
回复 点赞
发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告