再次请教大力

liuchunhuith 2003-06-19 09:39:50
这是前一阵你给我回复的贴子,很精彩!有个地方看不懂,能帮助我解答一下吗? 
create proc 导出xls文件
@服务器名 varchar(255),
@库名 varchar(255),
@表名 varchar(255),
@用户名 varchar(100),
@密码 varchar(100),
@路径及文件名 varchar(255)
as
declare @temp1 nvarchar(4000),@temp2 varchar(8000)

set @temp1='select @value1='''',@value2='''' ;
问题在这里:a.name+char(39)中的char(39)是什么意思,在此是怎样工作的?
select @value1=@value1+'',''''''+a.name+char(39),@value2=@value2+'',cast(''+a.name+'' as varchar(200))'' from '+@库名+'..syscolumns a,'+@库名+'..sysobjects d where a.id=d.id and d.name='''+@表名+''''

exec sp_executesql @temp1,N'@value1 nvarchar(4000) output , @value2 varchar(8000) output',@temp1 output,@temp2 output

select @temp1=right(@temp1,len(@temp1)-1),@temp2=right(@temp2,len(@temp2)-1)

set @temp2='bcp "select '+@temp1+' union all SELECT '+@temp2+' FROM '+@库名+'..'+@表名+'" queryout '+@路径及文件名+' -c -S'+@服务器名+' -U'+@用户名+' -P'+@密码

--print @temp2
EXEC master..xp_cmdshell @temp2
go

exec 导出xls文件 '服务器名','库名','表名','sa','密码','c:\文件.xls'

go
drop proc 导出xls文件
go
...全文
23 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
leimin 2003-06-19
  • 打赏
  • 举报
回复
你可以
SELECT CHAR(39)

大力的意思是加一个’
zjcxc 2003-06-19
  • 打赏
  • 举报
回复

chr(39),就是'
因为SQL中,'为字符串的定界符,如果要引用它,必须用两个'
为了书写方便,所以就用chr(39)代替
shengcc 2003-06-19
  • 打赏
  • 举报
回复
'
ZERO132166 2003-06-19
  • 打赏
  • 举报
回复
将ACSII的值39转换成字符

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧