Si encuentras algún detalle que no entiendes puedes dejarlo en los comentarios y te ayudaremos rápidamente.
Solución:
Aquí hay una pequeña muestra de un código que funcionó en un SQL CLR en C#. Necesitarás usar VB si estás en 2005, creo. La tarea de secuencia de comandos también necesita que la propiedad de variable de lectura se establezca en MyVariable para que el valor de su variable esté disponible para ella.
// create a writer and open the file
TextWriter tw = new StreamWriter("\\server\share$\myfile.txt");
// write a line of text to the file
tw.WriteLine(Dts.Variables["MyVariable"].Value);
// close the stream
tw.Close();
Utilice una tarea de secuencia de comandos.
Acabo de probar esto. Creé un administrador de conexión de archivos, con la conexión string apuntando al archivo en el que quería escribir. Entonces creé un string variable que contiene el texto a escribir.
Agregué una tarea de script, especifiqué mi string en la lista de variables de solo lectura y, a continuación, hizo clic en Editar secuencia de comandos. El guión era el siguiente:
public void Main()
ConnectionManager cm = Dts.Connections["File.tmp"];
var path = cm.ConnectionString;
var textToWrite = (string)Dts.Variables["User::StringVariable"].Value;
System.IO.File.WriteAllText(path, textToWrite);
Dts.TaskResult = (int)ScriptResults.Success;
Esto funcionó sin problemas.
Todo lo que se necesita es una línea de código en una tarea de script simple. No se necesitan otras dependencias, como un administrador de conexión.
Así es como se vería en C#:
public void Main()
string variableValue = Dts.Variables["TheVariable"].Value.ToString();
string outputFile = Dts.Variables["Path"].Value.ToString();
System.IO.File.WriteAllText(outputFile, variableValue);
Dts.TaskResult = (int)ScriptResults.Success;
Obviamente, la línea más importante aquí es la que contiene la llamada a la función WriteAllText.
La variable Ruta debe contener una ruta completa + nombre de archivo para el archivo de salida.
Comentarios y valoraciones
Finalizando este artículo puedes encontrar las críticas de otros sys admins, tú asimismo tienes la opción de dejar el tuyo si te gusta.