我正在尝试创建一个调用其他 2 procedures 的 procedure 但我收到以下错误:
dbms-a3> CREATE OR ALTER PROCEDURE validateT (@name VARCHAR(30), @value REAL) AS
BEGIN
validateName @name;
validateValue @value
END
[2022-05-15 13:47:26] [S0001][102] Line 3: Incorrect syntax near 'validateName'.
我也尝试使用函数而不是 procedure,但似乎没有任何 VOID 类型,并且返回 NULL 也不起作用。
这是代码:
USE [dbms-a3]
GO
CREATE OR ALTER PROCEDURE validateName (@name VARCHAR(30)) AS
BEGIN
IF @name IS NULL OR LEN(@name) < 2
RAISERROR ('Invalid name', 14, 1)
END
GO
CREATE OR ALTER PROCEDURE validateValue (@value REAL) AS
BEGIN
IF @value IS NULL OR @value < 0
RAISERROR ('Invalid value', 14, 1)
END
GO
CREATE OR ALTER PROCEDURE validateT (@name VARCHAR(30), @value REAL) AS
BEGIN
validateName @name;
validateValue @value
END
GO
回答1
它应该是:
CREATE OR ALTER PROCEDURE validateT (@name VARCHAR(30), @value DECIMAL) AS
BEGIN
EXEC validateName @name
EXEC validateValue @value
END
GO