收录日期:2020/08/13 04:11:18 时间:2016/05/30 03:16:24 标签:基础类
存储过程如下:
CREATE procedure sp_News_Add
@title nvarchar(100),
@source nvarchar(50),
@editor nvarchar(20),
@fid nvarchar(10),
@content ntext,
@aboutnews nvarchar(2000),
@isindex int=0,
@islist int=1,
@ishot int=0,
@iscolor int=0,
@days int=0,
@errcode int=0 output
as
begin

declare @news_id int
declare @tablename nvarchar(50)
  begin tran
   select @tablename='news_'+direct from news_fenlei where substring(fid,1,2)=substring(@fid,1,2) and substring(fid,3,6)='000000'

    --把新闻存入相应的表
  exec ('insert into '+@tablename+'(title,source,editor,fid,content,aboutnews,isindex,islist,ishot,iscolor,days) values('+@title+','+@source+','+@editor+','+@fid+','+@content+','+@aboutnews+','+@isindex+','+@islist+','+@ishot+','+@iscolor+','+@days+')')


   if @@error<>0  --有错误进行回滚
       begin
          rollback tran
          return 1  --返回1表示添失败
        end 

   set @news_id=IDENT_CURRENT(@tablename)

    --同时把新闻存入总表
 exec('insert into news(title,source,editor,fid,content,aboutnews,isindex,islist,ishot,iscolor,days,news_id,tablename) values('+@title+','+@source+','+@editor+','+@fid+','+@content+','+@aboutnews+','+@isindex+','+@islist+','+@ishot+','+@iscolor+','+@days+','+@news_id+','+@tablename+')')

    if @@error<>0  --有错误进行回滚
      begin
          rollback tran
         return 1  --返回1表示添失败
    end
      
  commit tran
return 0
end
GO



调用出现如下错误:
exec sp_News_Add @title='a',@source='b',@fid='0500000',@editor='c',@content='d',@aboutnews='f'

服务器: 消息 128,级别 15,状态 1,行 1
在此上下文中不允许使用 'a'。此处只允许使用常量、表达式或变量。不允许使用列名。

a 是要插入的字符类型的值,在插入语句里面要用单引号引起来,不仅仅是title字段,其他字段也要引起来

比如片段('+@title+','
要改成  ('''+@title+''','

剩下的以此类推一样修改
将所有INsert into 表中字段为字符类型的栏位对应的变量做如下修改:

如将 @title 改为 '"'+@title +'"'
在数据库中如果用户要插入'怎么处理
在程序里检查一下吧
如果是,可以用俩''代替

关于全文索引contains模糊查询的问题 Sql Server 数据拷贝问题,急,急!!! sql语句错误,帮我看看吧 一个hook的小问题,马上给分的! 请解答我这几个关于数据库的问题呀,非常多谢 一个存储数据键和项目对的类(Dictionary对象类)支持任何ASP空间 Delphi小技巧提问,来轻松一下 怎么实现 JFrame 的“On Top” 注册表被网页恶意代码修改的问题 怎样在页面之间传递连个参数? 如何打开一个窗口,同时关闭当前窗口? 如何获得当前的操作系统...... 什么是\'信息\'? 关于间接寻址的几个疑问,请精通底层原理的高手进来解答 控件问题~!简单.谁来拿分?不够可加. 推荐几个学VC++好书 用过ASP.NET web Matrix请进?(vs.net也可进) 急!!在线等十分钟 鼠标等的事件问题 在口袋中有红,黄,蓝,白,黑五种球很多个,每次从口袋中拿出不同颜色的三个,可以有几种可能取法,并且打印出每种组合的三种颜色,你可 如何将数据库的字段内容读到excel表格当中? 急需optimizeit4.2的crack,老大们帮我! xp中,使用icq不能进入 chat room(公共聊天室) 关于Crystal Report动态报表生成的问题,已在五个坛子设贴,总计300分,不足可再加! 关于Crystal Report动态报表生成的问题,已在五个坛子设贴,总计300分,不足可再加! 关于Crystal Report动态报表生成的问题,已在五个坛子设贴,总计300分,不足可再加! 关于Crystal Report动态报表生成的问题,已在五个坛子设贴,总计300分,不足可再加! 关于Crystal Report动态报表生成的问题,已在五个坛子设贴,总计300分,不足可再加! 要使用ORACLE,需要启动哪些基本服务 我应该怎么写sql语句