改成这样试试,加上单引号,而且必须写两次:--因为在' + cast(@TimeId as varchar(255)) + '这里无法加 ' 报错
declare @sql varchar(255)
declare @id varchar(255),@TimeId varchar(255); set @sql = 'SELECT TOP ' + cast(@id as varchar) + ' * FROM bbb where schoolid = ''' + cast(@TimeId as varchar(255)) + ''' ORDER BY TimeId'
exec(@sql)
declare @sql varchar(255)
declare @id varchar(255),@TimeId varchar(255); set @sql = 'SELECT TOP ' + cast(@id as varchar) + ' * FROM bbb where schoolid = ''' + cast(@TimeId as varchar(255)) + ''' ORDER BY TimeId'
exec(@sql)
set @sql = 'SELECT TOP ' + cast(@id as varchar) + ' * FROM bbb where schoolid = ' + cast(@TimeId as varchar(255)) + ' ORDER BY TimeId'改成:
set @sql = 'SELECT TOP ' + cast(@id as varchar) + ' * FROM bbb where schoolid = ‘’' + cast(@TimeId as varchar(255)) + '‘’ ORDER BY TimeId'
declare @id varchar(255),@TimeId varchar(255);
SET @timeid ='301221'
SET @id=10
set @sql = 'SELECT TOP (' + cast(@id as varchar) + ') * FROM bbb where schoolid = ' + cast(@TimeId as varchar(255)) + ' ORDER BY TimeId'
PRINT(@sql)
set @sql = 'SELECT TOP (' + cast(@id as varchar) + ') * FROM bbb where schoolid = ''' + cast(@TimeId as varchar(255)) + ''' ORDER BY TimeId'
PRINT(@sql)/*
SELECT TOP (10) * FROM bbb where schoolid = 301221 ORDER BY TimeId
SELECT TOP (10) * FROM bbb where schoolid = '301221' ORDER BY TimeId*/