永发信息网

SQL EXEC 无法执行的问题

答案:3  悬赏:30  手机版
解决时间 2021-03-09 09:28
  • 提问者网友:疯子也有疯子的情调
  • 2021-03-09 00:46
declare @ids varchar(40)
SELECT @ids='9d16d6b9-72bf-4935-9366-02dbd0d7d4d3'
exec('delete Article where ar_id in ('+@ids+')')

死活报错语法错误.无法执行.. 同一段语句 如果IDS是INT类型 就正常运作了...求解释.快要崩溃了
最佳答案
  • 五星知识达人网友:街头电车
  • 2021-03-09 01:28
你这样执行在数据库中会变成执行
delete Article where ar_id in(9d16d6b9-72bf-4935-9366-02dbd0d7d4d3)
这样就报错了,拼接的话要在字符串里面也拼进去单引号
单引号的输出比较特殊,两个当一个用
SELECT @ids='''9d16d6b9-72bf-4935-9366-02dbd0d7d4d3'''
你再试试
全部回答
  • 1楼网友:夜风逐马
  • 2021-03-09 02:40

declare @username nvarchar(50)
set @username='小明'

declare @sql nvarchar(1000)

set @sql='select * from userinfo'

if @username<>''

     set @sql=@sql+ 'where [user_name]=''' + @username + ''''

exec(@sql)

  • 2楼网友:大漠
  • 2021-03-09 01:55
declare @ids varchar(40) SELECt @ids='9d16d6b9-72bf-4935-9366-02dbd0d7d4d3' exec('delete Article where ar_id in ('''+@ids+''')')
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯