错误在SQL Server 2005存储过程
问题描述:
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Prc_InsertUpdate] (@boxone VARCHAR(200),
@boxtwo VARCHAR(200),
@boxthree VARCHAR(200))
AS
DECLARE @num AS INT
SELECT @num = MAX(NUMBER) + 1
FROM updatepage
INSERT INTO [TestDB].[dbo].[updatepage]
([number],
[box1],
[box2],
[box3])
VALUES (@num,
@boxone,
@boxtwo,
@boxthree)
我创建这个程序,但得到这个错误错误在SQL Server 2005存储过程
消息208,级别16,状态6,过程Prc_InsertUpdate,9号线
无效的对象名称DBO .Prc_InsertUpdate”。
答
你是ALTER
-ing一个不存在的存储过程。改为使用CREATE procedure [dbo].[Prc_InsertUpdate]
。
另外为什么不是number
和identity
列?您目前的方法在并发条件下效率低下且不安全?
+0
或者他在SSMS – 2012-02-22 19:02:03
+0
@亚历克斯使用错误的数据库。 - 的确如此,但问题的内容表明他们正在“创建这个程序” – 2012-02-22 19:02:51
哦,'SELECT MAX(Number)+ 1'确实*可怕。即使你在可序列化事务中封装了它的选择和随后的使用,它仍然是不好的。 – 2012-02-22 19:08:36
@Damien_The_Unbeliever:如果我可以的话,我会给你+1 gazillion ..... – 2012-02-22 20:12:18