首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

一个语句改为存储过程的有关问题

2012-05-16 
一个语句改为存储过程的问题SQL codedeclare @NextIdentity intSELECT @NextIdentity IDENT_CURRENT(Ta

一个语句改为存储过程的问题

SQL code
declare @NextIdentity intSELECT @NextIdentity = IDENT_CURRENT('TableName') + IDENT_INCR('TableName') from TableNameif (@NextIdentity is null)   set @NextIdentity = IDENT_SEED('TableName')

原语句是这个,但是直接运行只是一个运行完成没有返回结果
然后为了活用,放到存储过程
SQL code
GO/****** Object:  StoredProcedure [dbo].[NextIDENT]    Script Date: 05/16/2012 12:32:55 ******/SET ANSI_NULLS OFFGOSET QUOTED_IDENTIFIER OFFGOALTER PROCEDURE [dbo].[NextIDENT](@tblName varchar(255) -- 表名)ASdeclare @NextIdentity intbeginSELECT @NextIdentity = IDENT_CURRENT(@tblName) + IDENT_INCR(@tblName) from bx_Postsif (@NextIdentity is null) set @NextIdentity = IDENT_SEED(@tblName)end exec(@NextIdentity)


总提示
消息 102,级别 15,状态 1,第 1 行
'30' 附近有语法错误。

(1 行受影响)
那个30已经是结果了。。还给出错了。。

而且from后边不能使用变量。我想做活了,后边也跟变量的。就报错呢。。
SQL code
SELECT @NextIdentity = IDENT_CURRENT(@tblName) + IDENT_INCR(@tblName) from bx_Posts
想把bx_Posts这个也变成变量传递的

[解决办法]
SQL code
GOalter PROCEDURE [dbo].[NextIDENT](    @tblName varchar(255) -- 表名)ASexec('declare @NextIdentity intSELECT @NextIdentity = IDENT_CURRENT('''+@tblName+''') + IDENT_INCR('''+@tblName+''') from '+@tblName+'if (@NextIdentity is null) begin      set @NextIdentity = IDENT_SEED('''+@tblName+''') endselect @NextIdentity')Go[NextIDENT] 'Flow_Class' 

热点排行