尝试创建过程时SQL语法不正确
尝试在SQL Server中执行时,我不断遇到错误: Msg 156,第15级,状态1,程序sql\u chp4a\u premiere\u assign,第5行尝试创建过程时SQL语法不正确,sql,sql-server,Sql,Sql Server,尝试在SQL Server中执行时,我不断遇到错误: Msg 156,第15级,状态1,程序sql\u chp4a\u premiere\u assign,第5行 关键字“SELECT”附近的语法不正确 我假设它指的是第一个SELECT。我还不太熟悉SQL(由于可怕的风暴和春假,我有一段时间没有上过课),所以我可能忽略了一些愚蠢的事情 USE [school username that gives out my name) CREATE PROCEDURE sql_chp4a_premiere
关键字“SELECT”附近的语法不正确 我假设它指的是第一个
SELECT
。我还不太熟悉SQL(由于可怕的风暴和春假,我有一段时间没有上过课),所以我可能忽略了一些愚蠢的事情
USE [school username that gives out my name)
CREATE PROCEDURE sql_chp4a_premiere_assign
SELECT PART_NUM,DESCRIPTION,PRICE
FROM PART;
SELECT *
FROM ORDERS
SELECT CUSTOMER_NAME
FROM customer
WHERE CREDIT_LIMIT>=10000;
SELECT ORDER_NUM
FROM ORDERS
WHERE CUSTOMER_NUM = '608'
AND ORDER_DATE = '2010-10-23';
SELECT CUSTOMER_NUM,CUSTOMER_NAME
FROM CUSTOMER
WHERE REP_NUM=35 OR REP_NUM=65;
SELECT PART_NUM,DESCRIPTION
FROM PART WHERE CLASS!='AP';
SELECT PART_NUM,DESCRIPTION,ON_HAND
FROM PART
WHERE ON_HAND BETWEEN 10 AND 25;
SELECT PART_NUM,DESCRIPTION,ON_HAND
FROM PART
WHERE ON_HAND>=10 AND ON_HAND<=25;
SELECT PART_NUM,DESCRIPTION,(ON_HAND * PRICE)
AS "ON_HAND_VALUE"
FROM PART WHERE CLASS='SG';
SELECT PART_NUM,DESCRIPTION,(ON_HAND * PRICE)
AS "ON_HAND_VALUE"
FROM PART
WHERE (ON_HAND * PRICE)>7500;
SELECT PART_NUM,DESCRIPTION,(ON_HAND * PRICE)
AS "ON_HAND_VALUE"
FROM PART WHERE (ON_HAND * PRICE)>7500;
使用[给出我名字的学校用户名]
创建过程sql\u chp4a\u premiere\u assign
选择零件号、说明、价格
从部分;
挑选*
从命令
选择客户名称
来自客户
其中信用额度>=10000;
选择订单号
从命令
其中CUSTOMER_NUM='608'
订单日期='2010-10-23';
选择客户编号、客户名称
来自客户
其中REP_NUM=35或REP_NUM=65;
选择零件编号、描述
从类所在的部分开始!='AP';
选择手上的零件号、说明
从一部分
在10到25之间;
选择手上的零件号、说明
从一部分
其中手上>=10,手上7500;
选择零件编号、说明(现有*价格)
作为“现有价值”
(现有*价格)>7500的部分;
谢谢,非常感谢您的帮助。更改此选项:
CREATE PROCEDURE sql_chp4a_premiere_assign
为此:
CREATE PROCEDURE sql_chp4a_premiere_assign AS
第一:
这部分你错了:
USE [school username that gives out my name)
将)
更改为]
:
USE [school username that gives out my name]
第二:
存储过程声明中缺少AS
、BEGIN
和END
关键字
第三:
您创建了两个存储过程。用GO
这将有助于:
USE [school username that gives out my name]
go
CREATE PROCEDURE Sql_chp4a_premiere_assign
AS
BEGIN
SELECT part_num,
description,
price
FROM part;
SELECT *
FROM orders
SELECT customer_name
FROM customer
WHERE credit_limit >= 10000;
SELECT order_num
FROM orders
WHERE customer_num = '608'
AND order_date = '2010-10-23';
SELECT customer_num,
customer_name
FROM customer
WHERE rep_num = 35
OR rep_num = 65;
SELECT part_num,
description
FROM part
WHERE class != 'AP';
SELECT part_num,
description,
on_hand
FROM part
WHERE on_hand BETWEEN 10 AND 25;
SELECT part_num,
description,
on_hand
FROM part
WHERE on_hand >= 10
AND on_hand <= 25;
SELECT part_num,
description,
( on_hand * price ) AS "ON_HAND_VALUE"
FROM part
WHERE class = 'SG';
SELECT part_num,
description,
( on_hand * price ) AS "ON_HAND_VALUE"
FROM part
WHERE ( on_hand * price ) > 7500;
SELECT part_num,
description,
( on_hand * price ) AS "ON_HAND_VALUE"
FROM part
WHERE ( on_hand * price ) > 7500;
END;
go
CREATE PROCEDURE Sql_chp4a_premiere_assign
AS
BEGIN
SELECT part_num,
description,
price
FROM part;
SELECT *
FROM orders
SELECT customer_name
FROM customer
WHERE credit_limit >= 10000;
SELECT order_num
FROM orders
WHERE customer_num = '608'
AND order_date = '2010-10-23';
SELECT customer_num,
customer_name
FROM customer
WHERE rep_num = 35
OR rep_num = 65;
SELECT part_num,
description
FROM part
WHERE class != 'AP';
SELECT part_num,
description,
on_hand
FROM part
WHERE on_hand BETWEEN 10 AND 25;
SELECT part_num,
description,
on_hand
FROM part
WHERE on_hand >= 10
AND on_hand <= 25;
SELECT part_num,
description,
( on_hand * price ) AS "ON_HAND_VALUE"
FROM part
WHERE class = 'SG';
SELECT part_num,
description,
( on_hand * price ) AS "ON_HAND_VALUE"
FROM part
WHERE ( on_hand * price ) > 7500;
SELECT part_num,
description,
( on_hand * price ) AS "ON_HAND_VALUE"
FROM part
WHERE ( on_hand * price ) > 7500;
END
使用[给出我名字的学校用户名]
去
创建过程Sql\u chp4a\u premiere\u assign
作为
开始
选择零件号,
描述
价格
从部分;
挑选*
从命令
选择客户名称
来自客户
其中信用额度>=10000;
选择订单号
从命令
其中customer_num='608'
订单日期='2010-10-23';
选择客户编号,
客户名称
来自客户
其中rep_num=35
或rep_num=65;
选择零件号,
描述
从一部分
在哪里上课AP';
选择零件号,
描述
手头
从一部分
在10到25之间;
选择零件号,
描述
手头
从一部分
手上的位置>=10
现有7500人;
选择零件号,
描述
(现有*价格)为“现有价值”
从一部分
其中(现有*价格)>7500;
结束;
去
创建过程Sql\u chp4a\u premiere\u assign
作为
开始
选择零件号,
描述
价格
从部分;
挑选*
从命令
选择客户名称
来自客户
其中信用额度>=10000;
选择订单号
从命令
其中customer_num='608'
订单日期='2010-10-23';
选择客户编号,
客户名称
来自客户
其中rep_num=35
或rep_num=65;
选择零件号,
描述
从一部分
在哪里上课AP';
选择零件号,
描述
手头
从一部分
在10到25之间;
选择零件号,
描述
手头
从一部分
手上的位置>=10
现有7500人;
选择零件号,
描述
(现有*价格)为“现有价值”
从一部分
其中(现有*价格)>7500;
结束
有关存储过程语法,请参阅
无论如何,您可以使用格式化SQL。试试这个
CREATE PROCEDURE sql_chp4a_premiere_assign
AS
BEGIN
SELECT PART_NUM,DESCRIPTION,PRICE
FROM PART;
SELECT *
FROM ORDERS
SELECT CUSTOMER_NAME
FROM customer
WHERE CREDIT_LIMIT>=10000;
SELECT ORDER_NUM
FROM ORDERS
WHERE CUSTOMER_NUM = '608'
AND ORDER_DATE = '2010-10-23';
SELECT CUSTOMER_NUM,CUSTOMER_NAME
FROM CUSTOMER
WHERE REP_NUM=35 OR REP_NUM=65;
SELECT PART_NUM,DESCRIPTION
FROM PART WHERE CLASS!='AP';
SELECT PART_NUM,DESCRIPTION,ON_HAND
FROM PART
WHERE ON_HAND BETWEEN 10 AND 25;
SELECT PART_NUM,DESCRIPTION,ON_HAND
FROM PART
WHERE ON_HAND>=10 AND ON_HAND<=25;
SELECT PART_NUM,DESCRIPTION,(ON_HAND * PRICE)
AS "ON_HAND_VALUE"
FROM PART WHERE CLASS='SG';
SELECT PART_NUM,DESCRIPTION,(ON_HAND * PRICE)
AS "ON_HAND_VALUE"
FROM PART
WHERE (ON_HAND * PRICE)>7500;
SELECT PART_NUM,DESCRIPTION,(ON_HAND * PRICE)
AS "ON_HAND_VALUE"
FROM PART WHERE (ON_HAND * PRICE)>7500;
END
CREATE PROCEDURE sql\u chp4a\u premiere\u assign
作为
开始
选择零件号、说明、价格
从部分;
挑选*
从命令
选择客户名称
来自客户
其中信用额度>=10000;
选择订单号
从命令
其中CUSTOMER_NUM='608'
订单日期='2010-10-23';
选择客户编号、客户名称
来自客户
其中REP_NUM=35或REP_NUM=65;
选择零件编号、描述
从哪里开始上课!='AP';
选择手上的零件号、说明
从一部分
在10到25之间;
选择手上的零件号、说明
从一部分
其中手上>=10,手上7500;
选择零件编号、说明(现有*价格)
作为“现有价值”
(现有*价格)>7500的部分;
结束
错误是因为您缺少AS
-。第二,存储过程选择了很多,但什么也不做。Michael,这将错误更改为“Msg 111,级别15,状态1,过程sql\u chp4a\u premiere\u assign,第8行'CREATE/ALTER Procedure'必须是查询批处理中的第一条语句。”@user,在USE语句后面加上一个GO。这就给了我“Msg 111,级别15,状态1,过程sql\u chp4a\u premiere\u assign,第8行“创建/更改过程”必须是查询批处理中的第一条语句。“@user2109696:separateUSE
with创建存储过程USEGO
。。我已经编辑了我的答案,因为它是必需的<代码>开始
和结束
不是(尽管它们经常被使用)