更新时间: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.