22,299
社区成员




CREATE PROC pro_insertOrder @tableName VARCHAR(32) = NULL,@childTableName
VARCHAR(32) = NULL,@values NVARCHAR(200) = NULL,@childValues NVARCHAR(200) =
NULL
AS
DECLARE @result INT
DECLARE @parameter VARCHAR(200)
IF @tableName IS NULL
OR @childTableName IS NULL
OR @values IS NULL
OR @childValues IS NULL
BEGIN
RETURN -1
END
BEGIN TRANSACTION --事务开始
BEGIN
EXEC ('insert into ' + @tableName + ' values(' + @values + ')')
SELECT @result = @@IDENTITY
END
IF @result IS NOT NULL
BEGIN
SELECT @parameter = 'insert into ' + @childTableName + ' values(' + CAST(@result AS VARCHAR)
+ @childValues + ')'
PRINT @parameter
EXECUTE @parameter
COMMIT TRANSACTION --子表也插入就提交
END
ELSE
BEGIN
ROLLBACK TRANSACTION --如果主表没插入则回滚
RETURN 0
END
GO