una ultimo sqlserver right invertir funcion espacios concatenar caracter cadena blanco sql-server

sql-server - ultimo - sql server right string



SQL Server 2005 Generated Create Table Script no funciona (7)

Con la excepción de la instrucción use [MyDatabase] (la cambié a tempdb ), esta instrucción se ejecuta correctamente cuando la ejecuto contra SQL Server 2005 utilizando Microsoft SQL Server Management Studio.

Estoy en proceso de crear scripts de base de datos para una base de datos existente. Intento usar SQL Server para generar los scripts para mí, pero los scripts generados están fallando. Estoy usando la opción ''Script Table As''> ''CREATE To''> ''New Query Editor Window''. Luego cambio la tabla y los nombres de restricciones y ejecuto el script. Estoy perplejo. ¿Alguien puede ver el problema aquí?

Me sale este error:

Msg 170, Level 15, State 1, Line 17 Line 17: Incorrect syntax near ''(''.

El SQL generado:

USE [MyDatabase] GO /****** Object: Table [dbo].[MyTable2] Script Date: 01/06/2009 14:40:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[MyTable2]( [id] [int] IDENTITY(1,1) NOT NULL, [u_id] [int] NOT NULL, [prog_number] [varchar](5) NOT NULL, [trans_id] [varchar](50) NULL, [code] [varchar](7) NULL, [user_num] [char](9) NULL, [is_found] [char](9) NULL, [status] [char](1) NULL, [status2] [char](1) NULL, [inserted_timestamp] [datetime] NULL CONSTRAINT [DF_MyTable2_inserted_timestamp] DEFAULT (getdate()), [s_id] [varchar](10) NULL, [p_value] [char](4) NULL, CONSTRAINT [PK_MyTable2] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF


Copié / pegué esta declaración SQL exacta y se ejecutó correctamente para mí. Lo único que puedo pensar es que tiene algo resaltado y está ejecutando solo esa parte del mismo (que puede no ser una declaración completa).


Obtengo exactamente el mismo problema cuando uso SQL Server Management Studio 2005 para generar una secuencia de comandos Crear tabla en una base de datos de SQL Server 2000.


Si está ejecutando esto en una base de datos de SQL Server 2000, creo que tiene un código que SQL Server 2000 no admite. Nunca he visto un script SQL SErver 2000 que configure la restricción como parte de la definición de la tabla.


Si su DB objetivo es SQL 2000, entonces se queja de esta línea

WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]

SQL 2000 solo es compatible

WITH FILLFACTOR = 90

Entonces, probablemente haya alguna configuración de compatibilidad que pueda usar para generar solo la sintaxis de SQL 2000


Tengo el mismo error. SQL Sever Management Studio se predetermina para generar scripts para SQL Server 2005, que no son compatibles con 2000.

Mi solución: en SQL Sever Management Studio, vaya a Herramientas >> Opciones >> Secuencias de comandos. En "Opciones generales de scripting", configure "Secuencia de comandos para la versión del servidor" en "SQL Server 2000".


Con Management Studio 2008, puede crear una secuencia de comandos que sea compatible con una versión inferior de SQL Server de esta manera:

Haga clic derecho en la base de datos >> Tareas >> Generar secuencias de comandos

En ese asistente, puede acceder a la opción "Script para la versión del servidor". Simplemente seleccione la versión de SQL Server en la que desea que se ejecute el script.