读书人

请问一个存储过程的简单有关问题

发布时间: 2012-03-09 21:42:53 作者: rapoo

请教一个存储过程的简单问题
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

/*
-------------------------------------------
名称:P_Common_Insert
功能:通用的增加一条记录的存储过程
-------------------------------------------
*/
CREATE PROCEDURE P_Common_Insert
(
@tblName varchar(20), -- 表名
@strFields varchar(2000) ,--列
@strFieldsValue varchar(8000),--列的值
@UpdUserCodevarchar(6),
@ID_Typechar(1),--发号类型:0为不发号,1为自动编号
@ID_Startvarchar(20)--发号初始值
)
AS
begin
declare@CustCodevarchar(20),--所发的号
@strSQL varchar(8000) -- 主语句
if(@ID_Type = '0 ') --不用发号
begin
set @strSQL=N 'insert into ' + @tblName + '( ' +@strFields+ ',updusercode,updtime) values( '+ @strFieldsValue + ', ' ' '+@UpdUserCode+ ' ' ',getdate()) '
end

if(@ID_Type = '1 ') --自动编号
begin
set @strSQL=N 'insert into ' + @tblName + '( ' +@strFields+ ',updusercode,updtime) values( '+ @strFieldsValue + ', ' ' '+@UpdUserCode+ ' ' ',getdate()) '
set @CustCode = @@identity//N????? ' ' ' set select
end

exec (@strSQL)
select @CustCode//?????????
end
GO
SET QUOTED_IDENTIFIER OFF //?
GO
SET ANSI_NULLS ON
GO

请问:SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
有什么作用??
set @CustCode = @@identity是什么意思?set与select 有什么区别??
select @CustCode?是什么意思?
为什么发号与不用发号的语句set @strSQL=N 'insert into ' + @tblName + '( ' +@strFields+ ',updusercode,updtime) values( '+ @strFieldsValue + ', ' ' '+@UpdUserCode+ ' ' ',getdate()) '是一样的。
语句中的 ' ' '是什么意思?小弟初学忘指点谢谢!


[解决办法]
单引号之间是SQL里的字符串常量,两个单引号在一起表示转义,用于字符串常量与变量拼接的时候,相当于字符串常量中的一个单引号。

读书人网 >asp.net

热点推荐