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
@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
解决方案 »
- 如何判断字符的长度
- 问一个查询速度问题
- 求一条简单的sql语句
- SQL简单问题,在线等,急,谢谢!
- 高手请进:求一个复杂统计查询的sql写法,谢谢!
- SELECT COUNT(*)FORM(SELECT a,b FROM t_TABLE GROUP BY a,b )是错误的,高手赐教!!!!!急
- 简单问题....怎么得到数据库中一个表中数据的条数...谢谢
- 请问设为Identity的字段是否会溢出?
- 如何读取类型为varbinary的字段里的数据
- 请问产生全数据库的script文件..............
- 如何用一条SQL语句从A数据库读取一个表的数据写入B数据库的一个拥有相同字段的表
- 将Access 2000的数据导入SQL Server 2000,可能会出现哪些错误?
如果:
declare @s nvarchar(4000) 这样的话,会丢失数据的