Создавать таблицы SQL Server и хранимые процедуры в одном скрипте? - PullRequest
4 голосов
/ 06 января 2012

У меня есть скрипт 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но я продолжаю получать сообщение об ошибке «неправильный синтаксис рядом с ПРОЦЕДУРОЙ».

Ответы [ 2 ]

5 голосов
/ 06 января 2012

Попробуй так:

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
3 голосов
/ 06 января 2012

Вместо использования 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

Надеюсь, это поможет.

...