ALTER PROCEDURE [dbo].[DS_insertBorrowForm_P]
-- Add the parameters for the stored procedure here
@sql nvarchar(8000) --必须指定长度
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
exec sp_executesql @sql
ENDgo--调用
exec [dbo].[DS_insertBorrowForm_P] N'insert into DS_Bor_Apply_T (BorrowID,BorrowUser,BorrowDepartment,Phone,BorrowDate,BorrowPurpose,BorrowMethod,BorrowPeriod,ReturnDate,IsEmergency,Re) values(''1206154424'',''4'',''开发部'',''12'',''2008-12-06 15:35:33'',''编年修志'',''实体借阅'',''123'',''2008-12-12'',''0'',''123'')'
-- Add the parameters for the stored procedure here
@sql nvarchar(8000) --必须指定长度
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
exec sp_executesql @sql
ENDgo--调用
exec [dbo].[DS_insertBorrowForm_P] N'insert into DS_Bor_Apply_T (BorrowID,BorrowUser,BorrowDepartment,Phone,BorrowDate,BorrowPurpose,BorrowMethod,BorrowPeriod,ReturnDate,IsEmergency,Re) values(''1206154424'',''4'',''开发部'',''12'',''2008-12-06 15:35:33'',''编年修志'',''实体借阅'',''123'',''2008-12-12'',''0'',''123'')'
insert into DS_Bor_Apply_T (BorrowID,BorrowUser,BorrowDepartment,Phone,BorrowDate,BorrowPurpose,BorrowMethod,BorrowPeriod,ReturnDate,IsEmergency,Re) values('1206154424','4','开发部','12','2008-12-06 15:35:33','编年修志','实体借阅','123','2008-12-12','0','123')
单独在查询分析器里执行是成功的,但这个字符串用变化来代替,
然后再用语句exec sp_executesql 是不成功的,为什么呢?
是单引号的问题在转换成参数之前,应该用两个单引号来代替一个单引号
参数nvarchar未指定长度,系统默认为1个字符,也就是nvarchar(1)
insert into ....语句被截断出第一个字符'i',所以显示找不到存储过程i的错误