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
@x_content as ntextdeclare @sqlfbxx nvarchar(4000)
BEGINset @sqlfbxx='insert into text(content)values('+@x_content+')'
exec(@sqlfbxx)END
GO
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='李四'
------------
可以,你写的语句存在问题
改成这句insert into t_text(context) values(@x_content)
(@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='李四'
当这样写时就会出错了.我上面那种写法,表名可以用变量,但不支持中文数据.
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版去问一下那边的高手.
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
我这边测试有中文还是错哦.