我有一个Server存储过程,但是当它执行时,它似乎没有执行我希望调用的其他存储过程。
下面是我的存储过程示例,您可以看到我的EXEC语句。
如果有人知道为什么这不起作用,那么请告诉我!谢谢
ALTER PROCEDURE [dbo].[AddField]
@tablename nvarchar(20),
@newfield nvarchar(20),
@datatype nvarchar(20),
@length nvarchar(20),
@displayname nvarchar(20),
@tableseq nvarchar(20),
@varcharmax nvarchar(20),
@SEQ_PARENT nvarchar(20),
@FK_MODULE_VIEW nvarchar(20),
@FK_MODULE_VAL nvarchar(20)
AS
BEGIN
DECLARE @p_tablename varchar(20),
@type varchar(20),
@FK_SQL_DATA nvarchar(max),
@FK_TABLE_NAME varchar(20),
@ALTER_TABLE_SQL nvarchar(max),
@ALTER_TABLE_SQL_ADD_FK nvarchar(max),
@FIELD_REF_SQL_DATA nvarchar(max)
SELECT @p_tablename = TABLENAME FROM SD_TABLES WHERE VIEWNAME = @tablename
SET @type = @datatype + @length
if @datatype = 'TEST1'
BEGIN
--SQL HERE
END
if @datatype = 'TEST2'
BEGIN
--SQL HERE
END
if @datatype = 'TEST3'
BEGIN
--SQL HERE
END
EXEC SD_CreateAllViewStatements
END发布于 2013-10-30 10:18:10
我可以想一想为什么会发生这种情况的两种情况:
SD_CreateAllViewStatements之前崩溃。您可以添加简单的try ... catch结构以避免SP AddField崩溃。if ... begin ... end blocks中有一个需要删除的if ... begin ... end blocks语句(或者SP AddField需要重新设计)在这两种情况下,脚本基本上都不是执行对SD_CreateAllViewStatements的调用。在所有其他情况下,必须执行SP SD_CreateAllViewStatements。
https://stackoverflow.com/questions/19678605
复制相似问题