有一条创建存储过程的sql语句看不懂,不明白里面的中括号起什么作用?可以去掉吗? 30

语句如下:CREATEPROCEDUREdbo.ExistByID(@strTableNamevarchar(255),@strFieldNamevarchar(255)... 语句如下:
CREATE PROCEDURE dbo.ExistByID
(
@strTableName varchar(255),
@strFieldName varchar(255),
@intFieldValue varchar(255),
@bitResult bit output
)
AS
SET NOCOUNT ON
DECLARE @strSQL varchar(3000)
DECLARE @nCount int
if object_id('dbo.#tempTable') is NULL
create table #tempTable(temField int)
else
truncate table #tempTable --清空临时表
/*在数据库中检索符合条件的记录数并存储在临时表中*/
select @strSQL='select count (['+@strFieldName+']) from ['+@strTableName+'] where ['+@strFieldName+']='+convert(varchar(50),@strFieldName)
select @strSQL='insert #tempTable'+@strSQL
EXEC(@strSQL)
select top 1 @nCount=temField from #tempTable order by temField
drop table #tempTable
if @nCount>0
select @bitResult=1
else
select @bitResult=0
GO
请各位大虾帮忙指点一下,里面出现的中括号是什么意思,可以去掉吗?另外set nocount on是什么意思?请个位高手不临赐教,万分感谢!
请大虾详细说明一下上述语句中单引号和中括号的作用,在这里应用是否是必须的。另外set nocount on这句是什么意思?谢谢!谢谢!谢谢!
展开
 我来答
光影倾城
2008-03-28 · 超过33用户采纳过TA的回答
知道答主
回答量:179
采纳率:100%
帮助的人:58.1万
展开全部
当然不可以去掉,中括号是传进来的SQL参数值,就是表列名,这个存储过程是自动计算某个字段的数量用的,COUNT([传进来的表列名]).from([传进来的表名字]).如果传进来的表里不包含传进来的表列名会报错

这些字段都是你调用时传进来的值,不用你操心,如果你没不传进来或少传一个参数,或传参错误这个存储过程都不会执行.因为有SET NOCOUNT ON ,如果没有数据就不会被执行,如果有数据先清空再进行相应的操作
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式