今天,用bcp命令:
EXEC master..xp_cmdshell N'bcp "SELECT ''数据库ID'',''数据库名称'',''对象Id'',''表名'',''查询语句'',''总消耗CPU 时间(ms)'',''执行次数'',''平均消耗CPU 时间(ms)'',''最后一次执行时间'',''最小执行时间(ms)]'',''最大执行时间(ms)'' UNION ALL SELECT CAST(dbid AS NVARCHAR(100)),dbname,CAST(ObjectId AS NVARCHAR(100)) ,ObjectName ,SelectStatement ,CAST(total_worker_time AS NVARCHAR(100)) , CAST(execution_count AS NVARCHAR(100)) ,CAST( avg_elasped_time AS NVARCHAR(100)) ,CAST( last_execution_time AS NVARCHAR(100)),CAST(min_worker_time AS NVARCHAR(100)) ,CAST( max_worker_time AS NVARCHAR(100)) FROM dba.dbo.bdd_temp_find_top_select_cpu" queryout d:\top_select_cpu.xls -c -S"ZB-BAIDD-PC" -U"SA" -P"BAIDANDAN'
时,报如下错误:
出错原因:
该用户只允许‘WINDOWS身份验证’,不允许‘SQL SERVER身份验证’。
解决办法:
不用输入用户名和密码(-U和-P),只需输入-T(windows信任连接)即可
如:
EXEC master..xp_cmdshell N'bcp "SELECT ''数据库ID'',''数据库名称'',''对象Id'',''表名'',''查询语句'',''总消耗CPU 时间(ms)'',''执行次数'',''平均消耗CPU 时间(ms)'',''最后一次执行时间'',''最小执行时间(ms)]'',''最大执行时间(ms)'' UNION ALL SELECT CAST(dbid AS NVARCHAR(100)),dbname,CAST(ObjectId AS NVARCHAR(100)) ,ObjectName ,SelectStatement ,CAST(total_worker_time AS NVARCHAR(100)) , CAST(execution_count AS NVARCHAR(100)) ,CAST( avg_elasped_time AS NVARCHAR(100)) ,CAST( last_execution_time AS NVARCHAR(100)),CAST(min_worker_time AS NVARCHAR(100)) ,CAST( max_worker_time AS NVARCHAR(100)) FROM dba.dbo.bdd_temp_find_top_select_cpu" queryout d:\top_select_cpu.xls -c -S"ZB-BAIDD-PC" -T'