Comment passer un paramètre à une command bcp dans le server sql

Je veux envoyer un résultat de requête à un file, donc j'ai essayé d'utiliser la command bcp. Mais je ne peux pas passer de parameters à cela. Il montre une erreur.

EXEC xp_cmdshell 'bcp "SELECT * FROM CG.dbo.cdyy where EndTime between DATEADD(s,0,DATEADD(mm, DATEDIFF(m,0,'+@date+'),0)) and DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,1,'+@date+')+1,0)) " queryout "D:\cdr_cg.txt" -T -c -t,' 

Mettez vos parameters avant un maître d'appel .. xp_cmdshell

 DECLARE @date varchar(10) = '20130311', @bcp varchar(8000) SELECT @bcp = 'bcp "SELECT * FROM CG.dbo.cdyy WHERE EndTime between DATEADD(s,0,DATEADD(mm, DATEDIFF(m,0,''' + @date + '''),0)) AND DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,1,''' + @date + ''')+1,0)) " queryout "D:\cdr_cg.txt" -T -c -t,' EXEC master..xp_cmdshell @bcp 

J'utilise la requête suivante, sortie comme suit et le file n'est pas trouvé dans l'location comme mentionné.

Requête: exec xp_cmdshell 'bcp' utilise Mimsadaptor, sélectionne top 10 * à partir de l'ordre des logs par logdate "queryout" D: \ cdr_cg.txt "-T -c -t, 'OUTPUT: NULL Démarrage de la copy … SQLState = 01000, NativeError = 5701 Avertissement = [Microsoft] [Pilote ODBC SQL Server] [SQL Server] Context de database modifié pour 'MIMSAdaptor'. NULL 10 lignes copiées. Taille de package réseau (octets): 4096 Clock Time (ms.): Total 16 NULL