sql2000里有个字段是ntext,在存储过程里怎么转呢?CREATE PROC dbo.txtgc
@x_content as ntextdeclare @sqlfbxx nvarchar(4000)
BEGINset   @sqlfbxx='insert into text(content)values('+@x_content+')'
exec(@sqlfbxx)END
GO

解决方案 »

  1.   

    参数定义的是ntext,但是输入进来的你不能确定,如果能决定输入进来的是ntext类型就可以。否则换用varchar
      

  2.   


    create table  t_text(ID INT IDENTITY(1,1),context varchar(100))CREATE PROC proc_txtgc 
    (@x_content as varchar(100)
    )
    as
    insert into t_text(context) values('+@x_content+')
    GOexecute proc_txtgc @x_content='李四'
    ------------
    可以,你写的语句存在问题
      

  3.   

    哦错了
    改成这句insert into t_text(context) values(@x_content)
      

  4.   

    create table  t_text(ID INT IDENTITY(1,1),context varchar(100))CREATE PROC proc_txtgc 
    (@x_content as varchar(100)
    )
    as
    insert into t_text(context) values(@x_content) 
    GOexecute proc_txtgc @x_content='李四'
    这个写法表名不可以用变量来表示哦.如:create table  t_text(ID INT IDENTITY(1,1),context varchar(100))CREATE PROC proc_txtgc 
    (@x_content as varchar(100),@x_table as varchar(100)
    )
    as
    insert into @x_table(context) values(@x_content) 
    GOexecute proc_txtgc @x_content='李四'
    当这样写时就会出错了.我上面那种写法,表名可以用变量,但不支持中文数据.
      

  5.   


    CREATE PROC proc_txt 
    (@x_content as varchar(100),
     @tablename varchar(30)
    )
    as 
    declare @s varchar(100)
    set @s='insert into '+ @tablename+'(context)'+'values('+@x_content+')'
    exec(@s)
    GOexecute proc_txt  @x_content=123,@tablename='t_text'
    这样确实不支持字符,可以用数字,你到sql版去问一下那边的高手.
      

  6.   

    这样写可以支持,关键在于'values('+@x_content+')'里面如果是中文的话,字符是要引号的.execute proc_txt  @x_content="'李四'",@tablename='t_text'
      

  7.   

    像下面这种写法吗?
    CREATE PROC proc_txt 
    (@x_content as varchar(100),
     @tablename varchar(30)
    )
    as 
    declare @s varchar(100)
    set @s='insert into '+ @tablename+'(context)'+'values("'+@x_content+'")'
    exec(@s)
    GO
    我这边测试有中文还是错哦.