请帮我看看这个存储过程有什么错误?
CREATE PROCEDURE spClientGetCNWinImportantProject
@PrevDateTime datetime,
@NextDateTime datetime,
@FromDbName nvarchar(50),
@ToDbName nvarchar(50),
@Type varchar(20)
AS
declare @Str varchar(5000)
declare @recordcount int
BEGIN TRANSACTION tranInStoreMaterialInfoRep
SET @Str = N 'select @recordcount = count(ProjectID) from [ '+@ToDbName+ '].[dbo].[CNWinImportantProject] where ProjectStartDate=[ '+@PrevDateTime+ '] and ProjectEndDate =[ '+@NextDateTime+ '] and Type= '+@Type+ ' '
exec sp_executesql @Str, N '@recordcount int output ', @recordcount output
if (@recordcount =0)
begin
EXEC( 'INSERT INTO [ '+@ToDbName+ '].[dbo].[CNWinImportantProject](
ProjectID,
ProjectStartDate,
ProjectEndDate,
ConferTotalCost,
CNWinTotalCost,
Type,
IsUpload,
BelongMonth
)
select projectid, '+@PrevDateTime+ ', '+@NextDateTime+ ',0,0, '+@Type+ ',0,0
from [ '+@ToDbName+ '].[dbo].[SystemInitialize] ')
end
--如果更新失败则回滚事务
IF @@error <> 0
BEGIN
ROLLBACK TRANSACTION tranInStoreMaterialInfoRep
RETURN -1
END
COMMIT TRANSACTION tranInStoreMaterialInfoRep
RETURN 1
GO
错误1:服务器: 消息 241,级别 16,状态 1,过程 spClientGetCNWinImportantProject,行 12
从字符串转换为 datetime 时发生语法错误。
错误2:服务器: 消息 170,级别 15,状态 1,行 11
第 11 行: '1 ' 附近有语法错误。
------解决方案--------------------ProjectStartDate=[ ' ' '+@PrevDateTime+ ' ' '] and ProjectEndDate =[ ' ' '+@NextDateTime+ ' ' '] and Type= '+@Type+ ' '