Cun*_*ers 1 sql stored-procedures
我遇到了存储过程的问题(SQL 2005).
我有一个叫tbrm_Tags两列的表,TagID和TagName.我想将TagName值传递给存储过程,然后我想:
Tagname存在以及是否确实返回TagIDTagname不存在,我希望它插入表中并返回TagID.这是我正在使用的存储过程:
@TagID int = null,
@TagName varchar(50)
AS
DECLARE @returnValue int
BEGIN
IF EXISTS (SELECT * FROM tbrm_Tags WHERE TagName = @TagName)
BEGIN
SELECT
TagID
FROM tbrm_Tags
WHERE TagName = @TagName
END
ELSE
BEGIN
IF NOT EXISTS (SELECT * FROM tbrm_Tags WHERE TagName = @TagName)
INSERT INTO tbrm_Tags
(
TagName
)
VALUES
(
@TagName
)
SELECT @returnValue = @@IDENTITY
END
END
RETURN @returnValue
Run Code Online (Sandbox Code Playgroud)
我不能让select语句返回TagID时Tagname存在.
注意:不要使用@@IDENTITY- 它受触发器的影响; 总是用SCOPE_IDENTITY()
我可能会这样做:
DECLARE @returnValue int
SELECT @returnValue = TagID
FROM tbrm_Tags
WHERE TagName = @TagName
IF @returnValue IS NULL
BEGIN
INSERT tbrm_Tags(TagName)
VALUES (@TagName)
SET @returnValue = SCOPE_IDENTITY()
END
RETURN @returnValue
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |