首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2012-03-09 
请教一个存储过程的简单问题SETQUOTED_IDENTIFIEROFFGOSETANSI_NULLSONGO/*-----------------------------

请教一个存储过程的简单问题
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里的字符串常量,两个单引号在一起表示转义,用于字符串常量与变量拼接的时候,相当于字符串常量中的一个单引号。

热点排行