我有一个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附近的语法不正确”。
答案 0 :(得分:5)
试试这样:
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
答案 1 :(得分:3)
不要使用BEGIN END,而是在诸如Create,Alter之类的所有语句之间放置GO。另外我想告诉大家,GO会在你的脚本中创建块,所以如果你在一个块中创建一些局部变量,那么在另一个块中就无法访问它。
CREATE Table Table1(
--Your Code
)
GO
CREATE PROCEDURE Test
@x int
AS
BEGIN
SELECT COUNT(*)
FROM Table1
END
GO
--Continue your script
希望这有帮助。