RE:No se importar y exportar TXT
Gracias Pedro por el dato, pero he resuelto el Sp de Exportacion por medio del siguiente codigo, lo he logrado gracias a la ayuda de otro sitio que realmente me han dado ejemplos de codigo, lo que revise es adecuarlo a mi necesidad por parametros, lo que me esta faltando es pder importar desde TXT a Tabla por medio de parametros.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Description : IMPORTA DATOS DE UNA TABLA A UN ARCHIVO PLANO
--
-- @SERVER_NAME = Nombre de servidor donde se encuentra la tabla (ej.'SQL234')
-- @Tabla = Nombre de la tabla que se desea importar a un archivo (ej. 'Clientes')'
-- @Folder_Path = Ruta de directorio donde se guardara el archivo importado (ej. 'D:\planos')
-- @FILE_TYPE = Extension de tipo de archivo a exportar (ej. 'TXT' 'DOC')
-- @FILTRO = Condicion en el where de la tabla seleccionada (ej. 'id=2')
--
-- @Tabla = 'TEST2'
-- @Folder_Path = 'D:\'
-- @SERVER_NAME = 'AX'
-- @FILE_TYPE = 'TXT' -- EXCEL OR DATAFILES LIKE TXT OR DOC
-- @FILTRO = 'id=2 or codigo=234'
--
-- Ejemplo de uso : Execute exporta_tbl 'SRVAX','TEST','D:\','TXT',''
-- Ejemplo de uso : Execute exporta_tbl 'SRVAX','TEST','D:\','TXT','ID=2 OR CODIGO=234'
--
-- =============================================
ALTER PROCEDURE [dbo].[exporta_tbl] @SERVER_NAME sysname,@Tabla sysname,@Folder_Path sysname,@FILE_TYPE varchar(5),@FILTRO varchar(50)
as
BEGIN
declare @tables table( tid int identity,tname sysname)
declare @index int
declare @Max int
declare @QUERY varchar(4000)
declare @QUERY1 varchar(4000)
declare @Tname sysname
declare @DBNAME SYSNAME
insert into @tables (tname)
select name from sysobjects where xtype='u'
set @Max = @@identity
SET @DBNAME = DB_NAME()
SET @QUERY =''
SET @QUERY1 =''
SET @Index = 1
WHILE @index <= @max
Begin
SELECT @Tname = tname from @tables where tid = @Index
if @Tname=@TABLA
set @index = @max+1
else
set @Index = @Index + 1
end
SET @QUERY1 ='SELECT '
SELECT @QUERY1 = @QUERY1 + '''' + QUOTENAME( NAME ,'''') + ''' AS ' + NAME + ' ,' FROM SYSCOLUMNS where id = object_id(@tname)
SET @QUERY1 = LEFT( @QUERY1,LEN( @QUERY1 ) - 1 )
SET @QUERY='SELECT '
SELECT @QUERY = @QUERY + 'CAST('+NAME + ' AS VARCHAR('+ LTRIM( STR( LENGTH )) +')),' FROM SYSCOLUMNS where id = object_id(@tname)
if LEN(@filtro)>0
SET @QUERY = LEFT( @QUERY,LEN( @QUERY ) -1 ) +' FROM '+@DBNAME+'.dbo.'+ @TNAME+' WHERE '+@FILTRO
ELSE
SET @QUERY = LEFT( @QUERY,LEN( @QUERY ) -1 ) +' FROM '+@DBNAME+'.dbo.'+ @TNAME
SET @QUERY1 = @QUERY1 + ' UNION ALL ' + @QUERY
SELECT @Query= 'master.dbo.xp_cmdshell
''bcp.exe "'+@QUERY1 + ' " queryout "'+@Folder_Path+'\' + @tname + '.'+@FILE_TYPE +'" -c -t"," -r"\n" -F2 -T -S '+@SERVER_NAME +''''
EXECUTE(@Query)
END