Crear vista de tabla en servidor vinculado

07/07/2004 - 13:22 por Anonimo | Informe spam
Hola:

Tengo en un servidor SQL server 2000 son sp3 otro servidor
de SQL server vinculado, realizo una consulta sobre la
tabla y no hay problema, me devuelve datos, pero si lo que
quiero es crear una vista de una tabla de otro servidor,
cuando pongo la misma consulta que antes funcionaba en el
analizador de consultas para crear la vista, aparentemente
la consulta funciona pues recoge los campos, pero cuando
la grabo me devuelve un error y no me deja grabar.

El error es:

Error ODBC:[Microsoft][ODBC SQL Server Driver][SQL Server]
No se puede realizar la operacion. El proveedor OLE
DB 'SQLOLEDB' no se puede iniciar una transacion
distribuida.
[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB
provider return message: No se puede dar de alta la
nueva transacion en el coordinador de transaciones
especificado.]
[Microsoft][ODBC SQL Server Driver][SQL Server]Traza de
error de OLE DB[OLE/DB Provider 'SQLOLEDB'
ITransactionJoinTransaction return 0x8004d00a].

Un saludo y gracias.
 

Leer las respuestas

#1 Isaías
07/07/2004 - 23:28 | Informe spam
Reglas para crear vistas (creo, si no mal recuerdo, se las
debo a Maxi).

a.. Las opciones ANSI_NULLS y QUOTED_IDENTIFIER deben
establecerse en ON
cuando se ejecute la instrucción CREATE VIEW. La función
OBJECTPROPERTY
presenta estos resultados para las vistas mediante las
propiedades
ExecIsAnsiNullsOn o ExecIsQuotedIdentOn.


b.. La opción ANSI_NULLS debe establecerse en ON para
poder ejecutar todas
las instrucciones CREATE TABLE, que crean tablas a las que
se hace
referencia en la vista.


c.. La vista no debe hacer referencia a ninguna otra
vista, sólo a tablas
base.


d.. Todas las tablas base a las que hace referencia la
vista deben estar
en la misma base de datos que ésta y tener su mismo
propietario.


e.. Esta vista se debe crear con la opción
SCHEMABINDING. Mediante la
opción SCHEMABINDING se asocia la vista al esquema de las
tablas base
subyacentes.


f.. Las funciones definidas por el usuario a las que se
hace referencia en
la vista se deben crear con la opción SCHEMABINDING.


g.. Es preciso utilizar nombres compuestos de dos partes
para hacer
referencia a las tablas y funciones definidas por el
usuario. No se permiten
nombres de una, tres y cuatro partes.


h.. Todas las funciones a las que se hace referencia en
las expresiones de
la vista deben ser deterministas. La propiedad
IsDeterministic de la función
OBJECTPROPERTY informa de si una función definida por el
usuario es
determinista. Para obtener más información, consulte
Funciones deterministas
y no deterministas.


i.. La instrucción SELECT de la vista no puede contener
los siguientes
elementos de sintaxis Transact-SQL:
a.. La lista de selección no puede utilizar la
sintaxis * o table_name.*
para especificar columnas. Los nombres de columnas deben
especificarse
explícitamente.


b.. Un nombre de columna de tabla utilizado como una
expresión sencilla
no puede especificarse en más de una columna de vista. Se
puede hacer
referencia a una columna varias veces siempre que todas
las referencias, o
todas menos una, a la columna formen parte de una
expresión compleja o de un
parámetro de una función. Por ejemplo, esta lista de
selección no es válida:
SELECT ColumnA, ColumnB, ColumnA
Estas listas de selección sí son válidas:

SELECT ColumnA, AVG(ColumnA), ColumnA + Column B AS
AddColAColB

SELECT SUM(ColumnA), ColumnA % ColumnB AS ModuloColAColB
c.. Una tabla derivada.


d.. Funciones de conjunto de filas.


e.. UNION, operador.


f.. Subconsultas.


g.. Combinaciones externas y autocombinaciones.


h.. Cláusula TOP.


i.. Cláusula ORDER BY.


j.. DISTINCT, palabra clave.


k.. COUNT(*) (se permite COUNT_BIG(*))

Preguntas similares