我是SQL Sever的新手,我正在尝试在事务中创建一个过程,如下所示:
BEGIN TRY
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
BEGIN TRANSACTION MyTran
--*****************************************************************************
USE [Database]
Create PROCEDURE [dbo].[SP_StoreProcedure] AS
--Some SQL Queries here
Go
Commit TRANSACTION MyTran
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION ;
END CATCH;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
但是我得到这些错误:
消息156,级别15,状态1,行9关键字'PROCEDURE'附近的语法不正确 . 消息102,级别15,状态1,行5'BEGIN'附近的语法不正确 . 消息102,级别15,状态1,行14'END'附近的语法不正确 .
如果在SQL Server中无法做到这一点有什么解决方法?
4 回答
存储过程的创建应该是脚本中的第一个语句 . 将存储过程创建放在
VARCHAR(MAX)
(即作为字符串)中,并使用EXEC sp_executesql <your_sp_creation_varchar>
Your Syntax is Wrong
TSQL - create a stored proc inside a transaction statement有一个很好的答案 .
user KM说:尝试在EXEC('...')中执行创建过程,如下所示: