SQL存储过程的问题???急呀!(!)

我写了一个存储过程,语法检验没问题,可是调用他就是不执行操作。我单步调试他,每一句都能执行 可是没效果。
可我把它中的语句考到查询分析器中,却执行得没问题。
如果数据库时刚启动的 第一次调成功,以后在调用没有返回任何错误信息,但没有实际操作。

这种情况大家谁遇到过,帮帮忙呀!

这是我的存储过程:
CREATE PROCEDURE [PreTreatmentTreeTable] ---------2004/04/22,zyc
@userID varchar(50), /* user's gh */
@DbName varchar(50), /*databasename*/
@tableName varchar(50), /*tablename*/
@NodeName varchar(100), /*myName*/
@codeFieldName varchar(100), /*myCode*/
@separatorFlag varchar(50) /*eg.\ or / or (} and or so*/
AS

declare
@newTableName varchar(150)
,@strSQL nvarchar(4000)
,@return_status int

if len(@userID)=0 or len(@DbName)=0 or len(@tableName)=0 or len(@NodeName)=0 or len(@codeFieldName)=0 or len(@separatorFlag)=0
begin
raiserror(15405, -1, -1, '参数非法。')
return (1)
end

select @strSQL = 'IF NOT EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'''+ @DbName +''')
begin
raiserror(15405, -1, -1, ''不存在指定的数据库'')
end'
EXECUTE @return_status = sp_executesql @strSQL
if @return_status = 1
begin
raiserror(60000, -1, -1, '查找指定的数据库时失败。')
return (1)
end

select @strSQL = 'IF NOT EXISTS (SELECT name FROM ' +@DbName + '.dbo.sysobjects WHERE name = N'''+ @tableName +''' and type =''U'' )
begin
raiserror(15405, -1, -1, ''不存在指定的数据表:'' )
end'
EXECUTE @return_status = sp_executesql @strSQL
if @return_status = 1
begin
raiserror(60000, -1, -1, '查找指定的数据库时失败。')
return (1)
end

IF NOT EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'maintepcuseryw')
CREATE DATABASE [maintepcuseryw]

select @newTableName = @DbName + '_' + @tableName +'_'+@userID /*'maintepcuseryw'*/

select @strSQL = 'IF EXISTS (SELECT name FROM maintepcuseryw.dbo.sysobjects WHERE name = N'''+ @newTableName +''' and type =''U'' and xtype =''U'' )
begin
DROP table maintepcuseryw..' +@newTableName +'
end'
EXECUTE @return_status = sp_executesql @strSQL
if @return_status = 1
begin
raiserror(60000, -1, -1,'删除同名的数据库时失败。')
return (1)
end

select @strSQL = 'select '+@NodeName +','+ @codeFieldName +','+ @codeFieldName +' as '+ @codeFieldName + '_Flg into maintepcuseryw..'+ @newTableName +' from '+ @DbName + '..' + @tableName
EXECUTE @return_status = sp_executesql @strSQL
if @return_status = 1
begin
raiserror(60000, -1, -1, '生成指定的数据库时失败。')
return (1)
end

select @strSQL = 'update maintepcuseryw..'+@newTableName+' set '+@codeFieldName+'_Flg = REVERSE(
SUBSTRING(
REVERSE('+@codeFieldName+')
, CHARINDEX(REVERSE('''+@separatorFlag+'''),REVERSE('+@codeFieldName+'))+len('''+@separatorFlag+''')
,len('+@codeFieldName+')-CHARINDEX(REVERSE('''+@separatorFlag+'''),REVERSE('+@codeFieldName+'))-len('''+@separatorFlag+''')+1
)
) where CHARINDEX('''+@separatorFlag+''','+@codeFieldName+')>0'

EXECUTE @return_status = sp_executesql @strSQL
if @return_status = 1
begin
raiserror(60000, -1, -1, '处理指定的数据时失败。')
return (1)
end

select @strSQL = 'update maintepcuseryw..'+@newTableName+' set '+@codeFieldName+'_Flg = '''' where CHARINDEX('''+@separatorFlag+''','+@codeFieldName+')=0'
EXECUTE @return_status = sp_executesql @strSQL
if @return_status = 1
begin
raiserror(60000, -1, -1, '处理指定的数据时失败。')
return (1)
end

return (0)
GO
[4369 byte] By [flyingZFX-卍南无阿弥陀佛卍] at [2008-2-12]
# 1
太长了,没有精力啊

帮你顶一下!
ukyoxh-我来学习 at 2007-10-21 > top of Msdn China Tech,visual basic,数据库(包含打印,安装,报表)...
# 2
谢谢楼上的老兄,帮顶,

还有没有人会呀?
# 3
对不起。怎么这么长呀。而且看起来好费劲,真是不好意思,只好给你增加一点人气了。
wancl-wancl at 2007-10-21 > top of Msdn China Tech,visual basic,数据库(包含打印,安装,报表)...
# 4
你要實現什么功能都沒有說呀,似懂非懂的
dofly-巴山夜雨 at 2007-10-21 > top of Msdn China Tech,visual basic,数据库(包含打印,安装,报表)...