找回密码
 立即注册

QQ登录

只需一步,快速开始

stevenHN

初级会员

29

主题

85

帖子

470

积分

初级会员

积分
470
stevenHN
初级会员   /  发表于:2023-6-21 11:47  /   查看:1948  /  回复:5
5金币
计划任务中的SQL命令如下图:



发布到服务器运行后日志提示如下图:


期间参考了以下帖子:
执行SQL语句中使用变量作为"表名"报错问题
https://gcdn.grapecity.com.cn/showtopic-163827-1-113.html

准备遵照操作,却被提示如下:


接下来不知如何处理了,请大佬们赐教。
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

大佬,sql我们也不太擅长哈,执行sql命令动态表名可以参考下方帖子哈 执行SQL语句中使用变量作为"表名"报错问题 https://gcdn.grapecity.com.cn/showtopic-163827-1-1.html (出处: 葡萄城产品技术社区)

5 个回复

倒序浏览
最佳答案
最佳答案
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2023-6-21 11:47:02
来自 3#
大佬,sql我们也不太擅长哈,执行sql命令动态表名可以参考下方帖子哈

执行SQL语句中使用变量作为"表名"报错问题
https://gcdn.grapecity.com.cn/showtopic-163827-1-1.html
(出处: 葡萄城产品技术社区)


回复 使用道具 举报
jiangcj369
高级会员   /  发表于:2023-6-21 11:58:19
2#
本帖最后由 jiangcj369 于 2023-6-21 12:12 编辑

表名不能这么玩吧。。。sql执行有两种,一种是动态执行sql,一种是静态的,表名是变量的话,要用动态执行sql,大致就是
declare @tableName varchar(255)
declare @filedName varchar(255)
declare @sqlStr varchar(4000)
set @tableName='订单表'
set @sqlStr='UPDATE '+@tableName+' SET 数据库字段名='+@filedName
exec @sqlStr
sqlserver大致是这样写的,sqlite的语法可能有点变化

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金币 +5 收起 理由
Lay.Li + 5 赞一个!

查看全部评分

回复 使用道具 举报
stevenHN
初级会员   /  发表于:2023-6-21 23:04:44
4#
本帖最后由 stevenHN 于 2023-6-21 23:09 编辑
jiangcj369 发表于 2023-6-21 11:58
表名不能这么玩吧。。。sql执行有两种,一种是动态执行sql,一种是静态的,表名是变量的话,要用动态执行sq ...

再次细细阅读、思考和摸索:
执行SQL语句中使用变量作为"表名"报错问题
https://gcdn.grapecity.com.cn/showtopic-163827-1-1.html

最终采用如下方式解决了该问题:

总的原则是:设置SQL语句中所要使用的变量必须事先定义和赋值,否则,就会报错。

在服务器端发布执行后的日志如下:


本人猜测:“执行sql命令”中的参数,

只能在静态sql执行中作为“参数值”使用。(在SQL中如果某些参数没有确定,如"select * from t1 where c1>? and c2<?",这种语句是静态SQL,不是动态SQL,虽然个别参数的值不知道,但整个SQL的结构已经确定,数据库是可以将它编译的,在执行阶段只需将个别参数的值--摘自:https://blog.csdn.net/qq_28289405/article/details/81867257 动态SQL 和静态SQL 的 区别

只是:

这条sql语句的原意是想将“bcd”的值填入“目标任务详情”这一列,却怎么变成了“将列名赋值为bcd”了?
请教大佬这是怎么回事啊?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
jiangcj369
高级会员   /  发表于:2023-6-22 13:37:43
5#
stevenHN 发表于 2023-6-21 23:04
再次细细阅读、思考和摸索:
执行SQL语句中使用变量作为"表名"报错问题
https://gcdn.grapecity.com.cn ...

sql命令中连接符是+号
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2023-6-25 11:21:39
6#
感谢分享~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部