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), --列的值
@UpdUserCode varchar(6),
@ID_Type char(1), --发号类型:0为不发号,1为自动编号
@ID_Start varchar(20) --发号初始值
)
AS
begin
declare @CustCode varchar(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里的字符串常量,两个单引号在一起表示转义,用于字符串常量与变量拼接的时候,相当于字符串常量中的一个单引号。