我不熟悉PLSQL或MSSQL数据库中的过程编程(2012)。但是我生锈了,我搞砸了语法。
CREATE PROCEDURE [dbo].[AddActivity]
@activity_name nvarchar(255),
@responsible_first_name nvarchar(255),
@responsible_last_name nvarchar(255),
@estimated_savings numeric(18),
@estimated_start datetime,
@estimated_end datetime,
@department_id int,
@description nvarchar(MAX)
AS
DECLARE @return_code AS int = 0;
IF NOT EXISTS(SELECT 1 FROM dbo.Department WHERE @department_id = id)
BEGIN
@return_code = -1
END
ELSE
IF NOT EXISTS(SELECT 1 FROM dbo.Activity WHERE @activity_name = activity_name)
BEGIN
/* There is no duplicate (supposedly) so insert the entry here. */
END
ELSE
BEGIN
@return_code = -2
END
RETURN @return_code
帮助一位开发人员和他生锈的记忆? :d
答案 0 :(得分:2)
至少有一个问题是@return_code = -1
。您需要SET
或SELECT
:
SELECT @return_code = -1
答案 1 :(得分:1)
您需要SET
变量(@return_code
)中DECLARE
的值CREATE PROCEDURE [dbo].[AddActivity]
@activity_name nvarchar(255),
@responsible_first_name nvarchar(255),
@responsible_last_name nvarchar(255),
@estimated_savings numeric(18),
@estimated_start datetime,
@estimated_end datetime,
@department_id int,
@description nvarchar(MAX)
AS
DECLARE @return_code AS int = 0;
IF NOT EXISTS(SELECT 1 FROM dbo.Department WHERE @department_id = id)
BEGIN
SET @return_code = -1
END
ELSE
IF EXISTS(SELECT 1 FROM dbo.Activity WHERE @activity_name = activity_name)
BEGIN
SET @return_code = -2 --Removed the empty BEGIN/END by changing the IF NOT EXISTS to IF EXISTS
END
RETURN @return_code
。试试这个:
http://www.example.com/documentation/invoices/....