CREATE PROCEDURE excelout @strsql varchar(50)
AS
EXEC master..xp_cmdshell 'bcp "'+@strsql+'" queryout C:\authors.xls -c -Sjokey -Usa -Pjokey'
提示错误:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '+' 附近有语法错误。
使用变量,该怎么写这条语句。
谢谢!
CREATE PROCEDURE excelout @strsql varchar(150),@server varchar(50),@user varchar(30),@password varchar(50)
AS
declare @excelout varchar(280)
set @excelout='master..xp_cmdshell ''bcp "'+@strsql+'" queryout C:\excelout.xls -c -S'+@server+' -U'+@user+' -P'+@password+''''
exec(@excelout)
exec excelout 'SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname','jokey','sa','jokey'
自己解决了
又有一个新问题:
怎么把列名也导到EXCEL中去呢?
INSERT INTO
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Extended Properties=Excel 5.0;Data source=C:\excelout.xls')...[excelout](A,B)
VALUES ('学号', '姓名')
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'Microsoft.JET.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。
OLE DB 错误跟踪[OLE/DB Provider 'Microsoft.JET.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: 提供程序未给出有关错误的任何信息。]。
[此贴子已经被作者于2006-6-2 8:59:08编辑过]