create proc addgongqiu
@Rtitle nvarchar(100),
@Rbody text,
as
declare @str nvarchar(200)
set @str='Insert Into table(Rtitle,Rbody) Values('''+@Rtitle+''','''+@Rbody+''')'
exec(@str)错误提示:对数据类型而言运算符无效。运算符为 add,类型为 text。
其中Rtitle是文章标题
Rbody是新闻内容
当nvarchar和text类型混合时候怎么写存储过程
@Rtitle nvarchar(100),
@Rbody text,
as
declare @str nvarchar(200)
set @str='Insert Into table(Rtitle,Rbody) Values('''+@Rtitle+''','''+@Rbody+''')'
exec(@str)错误提示:对数据类型而言运算符无效。运算符为 add,类型为 text。
其中Rtitle是文章标题
Rbody是新闻内容
当nvarchar和text类型混合时候怎么写存储过程
set @str='Insert Into [table](Rtitle,Rbody) select @Rtitle,@Rbody'
create proc addgongqiu
@Rtitle nvarchar(100),
@Rbody text,
asexec('Insert Into table(Rtitle,Rbody) Values('''+@Rtitle+''','''+@Rbody+''')')
@Rtitle nvarchar(100),
@Rbody text
asexec('Insert Into table(Rtitle,Rbody) Values('''+@Rtitle+''','''+@Rbody+''')')
所以, 即使你定义了列为: varchar(8000)
也必须保证, 你插入的记录的所有列加起来没有超过8K, 否则就会出现截断的现象-- 简单的说, 下面的会出问题
DECLARE @t TABLE(col1 char(1000), col2 varchar(8000))INSERT @t SELECT '', REPLICATE('a', 8000)
DECLARE @t TABLE(col1 char(1000), col2 ntext)INSERT @t SELECT '', REPLICATE('a', 8000)
-----------
像这样就没有问题
参考一下这里
http://community.csdn.net/Expert/topic/5296/5296764.xml?temp=.2846491
@Rtitle nvarchar(100),
@Rbody text
as
declare @str nvarchar(200)
set @str='Insert Into table(Rtitle,Rbody) Values('''+@Rtitle+''','''+@Rbody+''')'
exec(@str)
CREATE proc xx
@tablename nvarchar(64)
as
declare @sql nvarchar(200)
set @Sql = ’select id from‘+◎tablename
exec(@sql)