如何在查询(SQL Server)中使用SQL变量?

Kam*_*med 3 sql sql-server variables stored-procedures

我编写了以下SQL存储过程,它一直给我错误 @pid = SELECT MAX(....整个过程是:

Alter PROCEDURE insert_partyco
@pname varchar(200)
AS
BEGIN
    DECLARE @pid varchar(200);

    @pid = SELECT MAX(party_id)+1 FROM PARTY;
    INSERT INTO party(party_id, name) VALUES(@pid, @pname)
    SELECT SCOPE_IDENTITY() as PARTY_ID
END
GO
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这里我做错了什么?

Cha*_*leh 5

Alter PROCEDURE insert_partyco
@pname varchar(200)
AS
BEGIN
    DECLARE @pid varchar(200);

    SELECT @pid = MAX(party_id)+1 FROM PARTY;
    INSERT INTO party(party_id, name) VALUES(@pid, @pname)
    SELECT SCOPE_IDENTITY() as PARTY_ID
END
Run Code Online (Sandbox Code Playgroud)

这有一个优点SETSELECT中,你可以在一个声明中选择多个变量表达式:

SELECT @var1 = exp1, @var2 = expr2 ... etc
Run Code Online (Sandbox Code Playgroud)