且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

存储过程中的问题

更新时间:2023-02-07 10:46:21

我假设您所有的表和列都存在.
不知道您是否可以更具体,但请尝试将子查询放在方括号之间,如下所示.
I am assuming all your tables and columns exist.
Not sure if you can''t be more specific, but try putting your subquery between brackets, like so.
INSERT INTO ORDERS(CUSTOMERID,ORDERDATE,FirstName,LastName,Company,Address,Country,City,Province,ZipCode,Telephone,Fax,totalAmount,userid)
VALUES (@CustomerID,@OrderDate,@FirstName,@LastName,@Company,@Address,@Country,@City,@Province,@ZipCode,@Telephone,@Fax,@totalAmount,
    (select userid from users where CustomerID=@CustomerID)
)
SELECT @@IDENTITY


如何?一:

How about this one :

ALTER PROCEDURE [dbo].[InsertOrder] 
@CustomerID varchar(50),
@OrderDate datetime,
@FirstName varchar(50),
@LastName varchar(50),
@Company varchar(50),
@Address varchar(50),
@Country varchar(50),
@City varchar(50),
@Province varchar(50),
@ZipCode varchar(50),
@Telephone varchar(50),
@Fax varchar(50),
@totalAmount varchar(50)
 

AS
BEGIN
 declare @uid int
 select @uid = userid from users where CustomerID=@CustomerID

	INSERT INTO ORDERS(CUSTOMERID,ORDERDATE,FirstName,LastName,Company,Address,Country,City,Province,ZipCode,Telephone,Fax,totalAmount,userid) 
	VALUES (@CustomerID,@OrderDate,@FirstName,@LastName,@Company,@Address,@Country,@City,@Province,@ZipCode,@Telephone,@Fax,@totalAmount, @uid)
	SELECT @@IDENTITY
END


INSERT INTO ORDERS(CUSTOMERID,ORDERDATE,FirstName,LastName,Company,Address,Country,City,Province,ZipCode,Telephone,Fax,totalAmount,userid)
    VALUES (@CustomerID,@OrderDate,@FirstName,@LastName,@Company,@Address,@Country,@City,@Province,@ZipCode,@Telephone,@Fax,@totalAmount,select userid from users where CustomerID=@CustomerID)



根据您的查询,从其中CustomerID = @ CustomerID可以返回多个结果的用户中选择用户ID.

谢谢.



based on your query, the select userid from users where CustomerID=@CustomerID can return more than 1 result.

thanks.