首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

获得列名,该怎么处理

2012-03-09 
获得列名use pubs/*pubs 数据库*/godeclare@sqlvarchar(8000)set@sqlselectselect@sql@sql+quotename(

获得列名

use pubs
/*pubs 数据库*/
go
declare @sql varchar(8000)  
  set @sql='select '  
  select @sql=@sql+quotename(Names)+'='+(Names)+' ,'  
 from (SELECT Rtrim(column_name) as Names FROM 
 INFORMATION_SCHEMA.COLUMNS  
WHERE TABLE_NAME = 'authors' )a 
  select @sql=left(@sql, len(@sql)-1)  
  exec(@sql)  


消息 207,级别 16,状态 1,第 1 行
列名 'au_id' 无效。
消息 207,级别 16,状态 1,第 1 行
列名 'au_lname' 无效。
消息 207,级别 16,状态 1,第 1 行
列名 'au_fname' 无效。

[解决办法]

--如何将exec执行结果放入变量中? 

declare @num int, @sqls nvarchar(4000) 
set @sqls='select @a=count(*) from tableName ' 
exec sp_executesql @sqls,N'@a int output',@num output 
select @num 

[解决办法]

SQL code
--tryuse   pubs /*pubs   数据库*/ go declare       @sql       varchar(8000)           set       @sql='select       '           select       @sql=@sql+quotename(Names)+'=['+Names+'] ,'       from     (SELECT       Rtrim(column_name)     as   Names   FROM     INFORMATION_SCHEMA.COLUMNS     WHERE     TABLE_NAME     =   'authors'   ) a       select       @sql=left(@sql,       len(@sql)-1)           exec(@sql)
[解决办法]
SQL code
create       table       T(id       int)           insert       T       select       1           insert       T       select       2         insert       T       select       3         insert       T       select       4         insert       T       select       5                 declare       @sql       varchar(8000)           set       @sql='select       '           select       @sql=@sql+quotename(id)+'='''+rtrim(id)+''','       from       T           select       @sql=left(@sql,len(@sql)-1)           exec(@sql)     drop     table       T       /*1    2    3    4    5---- ---- ---- ---- ----1    2    3    4    5(1 行受影响)*/
[解决办法]
SQL code
use pubs /*pubs 数据库*/ go declare @sql varchar(8000) set @sql='select ' select @sql=@sql+ ''''+quotename(names)+''' as ' + quotename(names) + ',' from (select rtrim(column_name) as names from information_schema.columns where table_name = 'authors' ) a select @sql=left(@sql, len(@sql)-1) exec(@sql) 

热点排行