4

キーと制約を使用して2つのデータベーステーブルを問題なく設定している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 を使用する代わりに、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

お役に立てれば。

于 2012-01-06T09:32:32.180 に答える