このテーブルを作成していますが、最初のプロシージャ(sp_joseview)で問題が発生しています
create table josecustomer(
name varchar(50),
address varchar(300),
ssnid int,
balance bigint,
accountnumber bigint
)
insert into josecustomer values('Aman','Canada',10000,5000,100000000)
insert into josecustomer values('Shubham','USA',10001,6000,200000000)
insert into josecustomer values('Himanshu','Australia',10002,2000,300000000)
insert into josecustomer values('Jose','India',10003,3000,400000000)
insert into josecustomer values('Albert','Brazil',10004,4000,500000000)
insert into josecustomer values('Peterson','Germany',10005,7000,600000000)
insert into josecustomer values('Adam','Honkong',10006,8000,700000000)
insert into josecustomer values('William','Paris',10007,9000,800000000)
select * from josecustomer
create proc sp_joseview
as begin
select * from josecustomer
end
go
create proc sp_updatejose
(@accountno bigint,@newbalance bigint)
as begin
update josecustomer
set balance=@newbalance
where accountnumber=@accountno
end
go
最初の手順で構文エラーが表示されていますが、そのエラーが何かはわかりません。
エラーは自明です。バッチ内の唯一のステートメントでない限り、CREATE PROCEDURE
ステートメントを発行することはできません。
SSMSでは、GO
キーワードによってステートメントが個別のバッチに分割されるため、ステートメントの後のCREATE PROCEDURE
の前に1つ追加する必要があります。
create table josecustomer(
name varchar(50),
address varchar(300),
ssnid int,
balance bigint,
accountnumber bigint
)
insert into josecustomer values('Aman','Canada',10000,5000,100000000)
insert into josecustomer values('Shubham','USA',10001,6000,200000000)
insert into josecustomer values('Himanshu','Australia',10002,2000,300000000)
insert into josecustomer values('Jose','India',10003,3000,400000000)
insert into josecustomer values('Albert','Brazil',10004,4000,500000000)
insert into josecustomer values('Peterson','Germany',10005,7000,600000000)
insert into josecustomer values('Adam','Honkong',10006,8000,700000000)
insert into josecustomer values('William','Paris',10007,9000,800000000)
select * from josecustomer
Go --Add a Go here
create proc sp_joseview
as begin
select * from josecustomer
end
go
create proc sp_updatejose
(@accountno bigint,@newbalance bigint)
as begin
update josecustomer
set balance=@newbalance
where accountnumber=@accountno
end
go
キーワードGO
は、単一のスクリプトでバッチを区切ります。このエラーは、_CREATE PROCEDURE
_がバッチ内の「唯一の」ステートメントでなければならないことを示しているため、_CREATE PROCEDURE
_のどこかにGO
がないのは当然のことです。
今、あなたのスクリプトを見てください、それは4つの広い領域に分かれています
2〜3のgo
がないことは明らかです。