¿Reparar el manejo de argumentos en los atajos personalizados del acelerador de teclado de Mgmt Studio de SQL Server 2005?

StackOverflow https://stackoverflow.com/questions/85179

  •  01-07-2019
  •  | 
  •  

Pregunta

Hace tiempo que soy fanático de los aceleradores de teclado de procedimientos almacenados, como se describe en Este artículo.Sin embargo, cuando pasamos de SQL 2000 a 2005 y de Query Analyzer a Management Studio, el manejo de los argumentos cambió.En el control de calidad, los argumentos separados por comas se leían automáticamente como dos argumentos separados.En SSMS, al menos para mí, se lee como un argumento, con comas.De manera similar, si paso un solo argumento con comillas simples, aparece un error de sintaxis. a menos que escape de las comillas ('->'').En el artículo vinculado anteriormente, la autora da a entender que este no debería ser el caso de SSMS, pero incluso con su ejemplo exacto, los argumentos separados por comas todavía se interpretan como un argumento en cada instalación de SSMS en la que lo he probado (3 de ellos), ejecutándose en todas las instalaciones de SQL Server que he probado (4 de ellas).

Por ejemplo, escribiendo lo siguiente en SSMS,

Person,4

luego, al seleccionarlo y ejecutar el acceso directo, aparece el mensaje de error "Nombre de objeto no válido 'Persona,4'.

¿Alguien tiene alguna idea de cómo solucionar este problema?¿Alguien usa estos atajos?Busqué en Google este problema varias veces durante los últimos dos años y no he tenido suerte.

Editar:Puede haber un problema con una versión específica de SSMS.Tengo una publicación de seguimiento a continuación.

¿Fue útil?

Solución 2

La sugerencia de Tim no resolvió mi problema en mi PC de desarrollo, pero sí me convenció de volver a intentarlo desde una PC diferente.Cuando uso el SSMS de una PC diferente para iniciar sesión en la base de datos de la PC de desarrollo y pruebo exactamente lo que describe Tim, tengo el mismo comportamiento que describe Tim.

También pude volver a replicar el problema del análisis de argumentos en otras PC que había probado en el pasado.Espero que Tim pueda decirme cuál es la versión y el número de compilación de su instalación de SSMS, porque mi teoría actual es que el problema proviene solo de la compilación específica que mis compañeros de trabajo y yo tenemos en nuestras PC de desarrollo: la cadena de versión es "Estudio de administración de Microsoft SQL Server 9.00.1399.00".Todas nuestras instalaciones de esa versión se realizaron hace más de un año, por lo que no sé si puedo rastrear de qué disco proviene.

El que NO tiene el problema es en realidad nuestro servidor de desarrollo, que tiene instalado "Microsoft SQL Server Management Studio 9.00.3042.00".No sé si esto podría ser algo que pueda hacer desaparecer mediante un parche o algo así, pero actualmente parece que 1399 lee la selección completa como un solo argumento, mientras que 3042 realiza un análisis previo.También descubrí recientemente que cuando paso una cadena que contiene "--" (token de comentario) en 3042, todo lo que sigue a "--" se ignora, mientras que en 1399, todo se incluye en el primer argumento.

Otros consejos

Nunca había probado esto hasta que leí tu pregunta y luego leí el artículo al que hacías referencia, así que tómate esto con cautela.

Dicho esto, puedo hacer que el proceso funcione en mi computadora usando SSMS y también puedo duplicar el error que describiste.

Para que esto funcione como se esperaba, creé el sproc en la base de datos maestra, asigné el método abreviado de teclado y reinicié SSMS.Luego escribí el nombre de la base de datos.nombre_esquema.nombre_tabla entre comillas simples seguidas de una coma y luego un valor entero (el sproc que probé fue el ejemplo de GetRows en el artículo).Todavía estaba conectado a la base de datos maestra.

Esto funcionó sin incidentes.

Para obtener el mismo error que mencionaste, eliminé la referencia al nombre del esquema o al nombre de la base de datos y recibí el mismo error que tú.

¿Quizás necesite agregar el nombre de la base de datos y el nombre del esquema antes del nombre de la tabla?

También estoy usando SSMS versión 9.00.3042.00, lo que probablemente explica por qué funciona en mi máquina.

De acuerdo con Tim.Acabo de actualizar a SQL Server 05 sp2 y confirmo que este error se solucionó.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top