Saludos...
Quiero exponer mi problema.
Ojala pueda encontrar ayuda en este foro.
Quiero poder parametrizar el nombre del servidor y la base de datos en
consultas SQL
He analizado tres opciones:
SELECT * FROM
OPENROWSET('SQLOLEDB', 'EXCELUM';'sa';'' ,'SELECT cla_empresa,
cla_ubicacion_base, cla_trab, nombre FROM bd_contal_srhyn.dbo.vw_Personal')
esta primera funciona bien pero no permite parametrizar ni el server ni la
base de datos, solo acepta cadenas constantes,.
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB','Data Source=EXCELUM;User ID=sa;Password=;'
).bd_contal_srhyn.dbo.vw_Personal
este caso es el mismo, la sintaxis funciona pero no puedo parametrizar nada.
CREATE TABLE #TMP_PERSONAL (cla_empresa INT, cla_ubicacion_base INT,
cla_trab INT, nombre VARCHAR(92))
INSERT INTO #TMP_PERSONAL EXEC ('SELECT cla_empresa, cla_ubicacion_base,
cla_trab, nombre FROM ' + @server + '.' + @database + '.dbo.vw_Personal')
Este ultimo me manda este error: y en varios foros esta reportado pero no
tiene una solucion.
Servidor: mensaje 7391, nivel 16, estado 1, línea 1
No se puede realizar la operación. El proveedor OLE DB 'SQLOLEDB' no pudo
iniciar una transacción distribuida.
[OLE/DB provider returned message: No se puede dar de alta la nueva
transacción en el coordinador de transacciones especificado. ]
Traza de error de OLE DB [OLE/DB Provider 'SQLOLEDB'
ITransactionJoin::JoinTransaction returned 0x8004d00a].
OJALA PUEDAN AYUDARME, Y YO TAMBIEN PUEDA AYUDARLOS POSTERIORMENTE EN ALGO..
SALUDOS..
Leer las respuestas