CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

把我搞晕了的一个问题:

楼主wanghuirui(wanghuirui)2004-09-04 07:31:23 在 MS-SQL Server / 基础类 提问

存储过程是这样写的  
  CREATE   procedure   sp_News_Add  
  @title   nvarchar(100),  
  @source   nvarchar(50),  
  @editor   nvarchar(20),  
  @fid   nvarchar(8),  
  @content   ntext,  
  @aboutnews   nvarchar(2000),  
  @isindex   int,  
  @islist   int,  
  @ishot   int,  
  @iscolor   int,  
  @days   int,  
  @tablename   varchar(50)  
  as  
  begin  
  declare   @news_id   int  
      begin   tran  
              --把新闻存入相应的表  
              exec('insert   into   '+@tablename+'(title,editor,fid,content,aboutnews,isindex,islist,ishot,iscolor,days)   values('+@title+','+@content+','+@editor+','+@fid+','+@aboutnews+','+@isindex+','+@islist+','+@ishot+','+@iscolor+','+@days+')')  
        --     select   "insert   into   "+@tablename+"(title,editor,fid,content,aboutnews,isindex,islist,ishot,iscolor,days)   values("+@title+")"  
              --set   @news_id=IDENT_CURRENT(@tablename)  
                --同时把新闻存入总表  
            --exec('insert   into   news(title,content,editor,fid,aboutnews,isindex,islist,ishot,iscolor,days,news_id,tablename)   values('+@title+','+@content+','+@editor+','+@fid+','+@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   @fid='05010101',@title='xxxf',@source='dd',@editor='d',@content='d',@aboutnews='dd',@tablename='news_college',  
  @isindex=1,@ishot=1,@islist=1,@iscolor=1,@days=1  
   
  出错如下:  
  服务器:   消息   128,级别   15,状态   1,行   1  
  在此上下文中不允许使用   'xxxf'。此处只允许使用常量、表达式或变量。不允许使用列名。  
  问题点数:0、回复次数:3Top

1 楼btut2004(养鱼炒股)回复于 2004-09-04 07:42:51 得分 0

是不是某个列名的问题Top

2 楼zjcxc(邹建)回复于 2004-09-04 07:58:50 得分 0

CREATE   procedure   sp_News_Add  
  @title   nvarchar(100),  
  @source   nvarchar(50),  
  @editor   nvarchar(20),  
  @fid   nvarchar(8),  
  @content   ntext,  
  @aboutnews   nvarchar(2000),  
  @isindex   int,  
  @islist   int,  
  @ishot   int,  
  @iscolor   int,  
  @days   int,  
  @tablename   varchar(50)  
  as  
  begin  
  declare   @news_id   int  
  begin   tran  
              --把新闻存入相应的表  
  declare   @s   nvarchar(4000)  
  set   @s='insert   into   '+@tablename+'(title,editor,fid,content,aboutnews,isindex,islist,ishot,iscolor,days)   values(@title,@content,@editor,@fid,@aboutnews,@isindex,@islist,@ishot,@iscolor,@days)'  
  exec   sp_executesql   @s  
  ,N'@title   nvarchar(100),  
  @editor   nvarchar(20),  
  @fid   nvarchar(8),  
  @content   ntext,  
  @aboutnews   nvarchar(2000),  
  @isindex   int,  
  @islist   int,  
  @ishot   int,  
  @iscolor   int,  
  @days   int'  
  ,@title,@editor,@fid,@content,@aboutnews,@isindex,@islist,@ishot,@iscolor,@days  
        --     select   "insert   into   "+@tablename+"(title,editor,fid,content,aboutnews,isindex,islist,ishot,iscolor,days)   values("+@title+")"  
              --set   @news_id=IDENT_CURRENT(@tablename)  
                --同时把新闻存入总表  
            --exec('insert   into   news(title,content,editor,fid,aboutnews,isindex,islist,ishot,iscolor,days,news_id,tablename)   values('+@title+','+@content+','+@editor+','+@fid+','+@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  
  Top

3 楼wanghuirui(wanghuirui)回复于 2004-09-04 08:14:48 得分 0

可是我的内容content字段是ntext型,  
  如果:  
  declare   @s   nvarchar(4000)   这样的话,会丢失数据的  
  Top

相关问题

  • INSERT INTO 要把我搞死了。帮帮我
  • 我把系统搞砸了吗?
  • JavaBean+jsp+Tomcat4.0???把我搞醉了
  • JavaBean+jsp+Tomcat4.0?把我搞醉了
  • 有个问题把我搞糊涂了!
  • 神啊!!!救救我吧!!ADODB.Connection 错误 '800a0e7a' 把我搞疯了!
  • sql语名执行时出错,nt把我搞昏了头了。
  • 谁能帮我把ADSL在win2000下搞定!
  • 组件、组件、组件、你把我搞疯了,sos!
  • C#中的gb2312和unicode字符编码把我搞糊了。

关键词

  • 新闻
  • source
  • aboutnews
  • ishot
  • islist
  • iscolor
  • isindex
  • fid
  • nvarchar
  • editor

得分解答快速导航

  • 帖主:wanghuirui

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo