软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 网络编程 > SQL SERVER > SQL Server存储过程表变量名加上'[]'出现错误的问题

SQL Server存储过程表变量名加上'[]'出现错误的问题

之前工作中编写存储过程(SQL Server 2005),声明了一个表变量,在SELECT ...FROM 表变量名 的时候,按回车插件SQL Prompt 4自动给表变量名加上了[]括号,当时没觉察有什么问题,按F5 ALTER 存储过程没提示编译错误。在执行该存储过程的时候却出现错误:

消息 208,级别 16,状态 1,过程 test2,第 9 行
对象名 '@TEMP_ID' 无效。

测试的存储过程如下:

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[test2]
AS
DECLARE @TEMP_ID TABLE
(
[ID] [VARCHAR](18) NOT NULL
PRIMARY KEY
)
BEGIN TRY
SELECT *
FROM [@TEMP_ID]
END TRY
BEGIN CATCH
PRINT '出错了'
END CATCH

奇怪的是,在CREATE或者ALTER这个存储过程的时候,SQL Server 没有报错。出现错误,是在执行这个存储过程的时候,而且,这个错误不能被TRY...CATCH块捕获到。究竟是什么原理,不知道院子里的牛人能否解释下?

所以,创建、修改完存储过程,还是试试执行下看有没错误。

转自:http://www.cnblogs.com/GuominQiu/

    相关阅读
    网友评论
    栏目导航
    推荐软件