数据库中:如何在存储过程中为一个变量,通过查询语句获赋值?
在存储过程中定义一个变量通过查询语句却无法赋值,该怎么解决呢?
DECLARE @SchoolworkID INT
SET @SchoolworkID = 0----可以获取值
SET @SchoolworkID = (SELECT TOP 1 SchoolworkID FROM StudentSchoolwork WHERE(schoolworkPath = @schoolworkPath))------但是这个语句就无法赋值,该怎么解决呢?
具体的存储过程如下:
CREATE PROCEDURE spUploadSchoolwork
@studentNO CHAR(6),
@schoolworkType CHAR(1),
@schoolworkPath VARCHAR(200),
---@teacherMarkedSign CHAR(1),
@schoolworkFileLength INT,
----uploadDay SMALLDATETIME DEFAULT GETDATE(),
@schoolworkFileType CHAR(5)
AS
DECLARE @SchoolworkID INT
SET @SchoolworkID = 0
SELECT @SchoolworkID = (SELECT TOP 1 SchoolworkID FROM StudentSchoolwork WHERE(schoolworkPath = @schoolworkPath))------这里@SchoolworkID无法获取值,该怎么解决呢?
-----PRINT @SchoolworkID-------
IF (@SchoolworkID = 0)
BEGIN
INSERT INTO StudentSchoolwork
VALUES(@studentNO, @schoolworkType, @schoolworkPath, '0', @schoolworkFileLength, GETDATE(), @schoolworkFileType)
END
ELSE
BEGIN
UPDATE StudentSchoolwork
SET studentNO = @studentNO,
schoolworkFileLength = @schoolworkFileLength,
uploadDay = GETDATE()
WHERE SchoolworkID = @SchoolworkID
END
GO