4

我有一个 SQL 脚本,它使用它们的键和约束设置两个数据库表,没有任何问题。我不会包含整个代码,但它的“骨架”看起来像这样:

 BEGIN
CREATE TABLE [table] (

)

CREATE TABLE [table2] (

)

ALTER TABLE table...

ALTER TABLE table2....


END

不过,我一直在尝试将存储过程添加到该脚本中,理想情况下,我希望将其全部包含在同一个脚本中。有人可以告诉我如何将以下存储过程包含到上述脚本中吗?

CREATE PROCEDURE Test
    @x int
AS
BEGIN
    SELECT COUNT(*)
    FROM table
END
GO

我已经尝试将它放在脚本的末尾,并且也尝试过使用和不使用 BEGIN、END 和 GO 标记,但我不断收到错误消息,提示“PROCEDURE 附近的语法不正确”。

4

2 回答 2

6

试试这样:

USE BDNAME
GO

 BEGIN
CREATE TABLE [table] (

)

CREATE TABLE [table2] (

)

ALTER TABLE table...

ALTER TABLE table2....


END


USE BDNAME
GO

CREATE PROCEDURE Test
    @x int
AS
BEGIN
    SELECT COUNT(*)
    FROM table
END

GO
于 2012-01-06T09:28:07.377 回答
3

不要使用 BEGIN END,而是将 GO 放在所有语句之间,例如 Create、Alter。另外我想通知您,放置 GO 将在您的脚本中创建块,因此如果您在一个块中创建一些局部变量,则无法在另一个块中访问它。

 CREATE Table Table1(
     --Your Code
 )

 GO

 CREATE PROCEDURE Test
      @x int
 AS
 BEGIN
     SELECT COUNT(*)
     FROM Table1
 END

 GO

 --Continue your script

希望这可以帮助。

于 2012-01-06T09:32:32.180 回答