ALTER PROCEDURE STeachingTeamInfo
(
@T_Id nvarchar(10),
@T_Level nvarchar(10),
@T_Time nvarchar(10),
@T_TeamName nvarchar(20),
@T_Gradation nvarchar(6),
@T_FileNum nvarchar(20),
@joinTime nvarchar(10)
)
AS
begin
SET NOCOUNT ON;
DECLARE @sql nvarchar(max)
SET @sql='SELECT T_Id,T_Level,T_Time,T_TeamName,T_Gradation,T_FileNum,joinTime FROM sr_TeachingTeam
where 1=1'
IF(@T_Id <>'0')
SET @sql = @sql+ N' and T_Id=('+@T_Id+N') '
IF(@T_Level <>'0')
SET @sql = @sql+ N' and T_Level='''+@T_Level+N''' '
IF(@T_Time <>'0')
SET @sql = @sql+ N' and T_Time between'''+@T_Time+N''' '
IF(@T_TeamName <>'0')
SET @sql = @sql+ N' and T_TeamName='''+@T_TeamName+N''' '
IF(@T_Gradation <>'0')
SET @sql = @sql+ N' and T_Gradation='''+@T_Gradation+N''' '
IF(@T_FileNum <>'0')
SET @sql = @sql+ N' and T_FileNumber='''+@T_FileNum+N''' '
EXEC sp_executesql @sql
end
这个地方SET @sql = @sql+ N' and T_Time between'''+@T_Time+N''' '我要实现的效果是 T_Time between 2009 and 2010 这样的效果
在输入@T_Time的时候 这个参数的格式怎么写啊 小弟写了半天 总是说字符串不正确
请问大家 这个在传入参数时候的格式该怎么写 ''的问题 总是匹配不好 太烦了~~~
(
@T_Id nvarchar(10),
@T_Level nvarchar(10),
@T_Time nvarchar(10),
@T_TeamName nvarchar(20),
@T_Gradation nvarchar(6),
@T_FileNum nvarchar(20),
@joinTime nvarchar(10)
)
AS
begin
SET NOCOUNT ON;
DECLARE @sql nvarchar(max)
SET @sql='SELECT T_Id,T_Level,T_Time,T_TeamName,T_Gradation,T_FileNum,joinTime FROM sr_TeachingTeam
where 1=1'
IF(@T_Id <>'0')
SET @sql = @sql+ N' and T_Id=('+@T_Id+N') '
IF(@T_Level <>'0')
SET @sql = @sql+ N' and T_Level='''+@T_Level+N''' '
IF(@T_Time <>'0')
SET @sql = @sql+ N' and T_Time between'''+@T_Time+N''' '
IF(@T_TeamName <>'0')
SET @sql = @sql+ N' and T_TeamName='''+@T_TeamName+N''' '
IF(@T_Gradation <>'0')
SET @sql = @sql+ N' and T_Gradation='''+@T_Gradation+N''' '
IF(@T_FileNum <>'0')
SET @sql = @sql+ N' and T_FileNumber='''+@T_FileNum+N''' '
EXEC sp_executesql @sql
end
这个地方SET @sql = @sql+ N' and T_Time between'''+@T_Time+N''' '我要实现的效果是 T_Time between 2009 and 2010 这样的效果
在输入@T_Time的时候 这个参数的格式怎么写啊 小弟写了半天 总是说字符串不正确
请问大家 这个在传入参数时候的格式该怎么写 ''的问题 总是匹配不好 太烦了~~~
between后面少一个空格?
declare @T_Time nvarchar(30)
set @t_time='2011-06-01 and ''2011-06-06'
select N' and T_Time between '''+@T_Time+N''' '/**-----------------------------------------------------
and T_Time between '2011-06-01 and '2011-06-06' (1 行受影响)
**/
可以print出来看看一般的情况下需要转义,两引号代表1个引号