我想在创建它之前创建一个存储过程..我正在检查数据库和表是否存在,然后创建存储过程 . 我正在使用下面的SQL脚本,但它会引发语法错误 . 我不知道为什么失败了 .
这是我得到的错误:
消息156,级别15,状态1,行9关键字'PROCEDURE'附近的语法不正确 . 消息102,级别15,状态1,行16'''附近的语法不正确 . 消息102,级别15,状态1,行2'END'附近的语法不正确 .
码:
IF (EXISTS(SELECT TOP 1 * FROM sys.databases
WHERE name = 'testdb1'))
BEGIN
IF (EXISTS (SELECT TOP 1 *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'TableA'))
BEGIN
CREATE PROCEDURE SP_TEST
AS
BEGIN
SET NOCOUNT ON;
SELECT TableA.[Key] AS Expr1
FROM testdb1.dbo.TableA
ORDER BY TableA.[Key];
END;
GO
END
END
2 回答
在创建POrocedure SP_test之前添加这些代码行解决了问题 .
这是因为';'去' .
使用下面的脚本 -