DECLARE @STR NVARCHAR(MAX)
SET @STR=''
SELECT @STR=@STR+'
+'',''+CAST('+name+' AS VARCHAR)'
FROM SYS.SYSCOLUMNS
WHERE id=OBJECT_ID('TB')
--AND name NOT IN('','')--可以把不要的去掉
SET @STR='DECLARE @STR VARCHAR(8000);SELECT @STR=ISNULL(@STR+'','','''')+'+STUFF(@STR,1,1,'')+' FROM TB;SELECT @STR'
PRINT @STR--你可以打印出来自己执行,或以下动态执行
EXEC(@STR)
SET @STR=''
SELECT @STR=@STR+'
+'',''+CAST('+name+' AS VARCHAR)'
FROM SYS.SYSCOLUMNS
WHERE id=OBJECT_ID('TB')
--AND name NOT IN('','')--可以把不要的去掉
SET @STR='DECLARE @STR VARCHAR(8000);SELECT @STR=ISNULL(@STR+'','','''')+'+STUFF(@STR,1,1,'')+' FROM TB;SELECT @STR'
PRINT @STR--你可以打印出来自己执行,或以下动态执行
EXEC(@STR)
if OBJECT_ID('test_jay')>0 print 1
else
begin
select 1 id ,'b' name ,'c' std into test_jay
union all
select 2 id ,'d' name ,'e' std
enddeclare @str nvarchar(max) = ''
select @str = @str +'cast(' + name + ' as varchar(max))+'','''+'+' from sys.columns where [object_id] = object_id('test_jay')
select @str = LEFT(@str, len(@str)-5)
print @strexec ('select ' + @str + 'from test_jay' )
declare @columnsstr varchar(1000)
declare @tablename varchar(100)='sys_deptdef'
declare @sql varchar(1000)
select @columnsstr = isnull(@columnsstr+'+','') + 'isnull(cast('+name + ' as varchar),'''+name+'是空值'') '+CHAR(13) from sys.columns where object_id = object_id(@tablename)
--print @columnsstr set @sql = 'select '+@columnsstr+'+'','' from '+@tablename+' for xml path('''')'
print @sql
exec (@sql)