una - modificar columna auto_increment sql server




Cómo identificar si la tabla tiene una columna de identidad. (6)

@Panay: dijo Edición compacta. Los procedimientos almacenados no son compatibles y no hay sys.anything.

Esta es la llamada:

SELECT Count(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE AUTOINC_INCREMENT IS NOT NULL AND TABLE_NAME='this_table'

Devolverá 1 (verdadero) o 0 (falso).

Quiero saber si la tabla tiene una columna de identidad o no. La tabla es desconocida para mí. No he hecho la estructura de la mesa. ¿Usando Query?

Estoy usando Sql Server Compact Edition.


Cualquiera de las siguientes consultas puede usarse para verificar si una columna de identidad está presente en la tabla

1)

SELECT *
FROM sys.identity_columns
WHERE OBJECT_NAME(object_id) = 'TableName'

2)

SELECT *
FROM sys.identity_columns
WHERE object_id = (
        SELECT id
        FROM sysobjects
        WHERE name = 'TableName'
    )

Esta es la consulta que obtiene u todos los nombres de tabla, nombres de columna de la tabla e is_identity o no en la base de datos seleccionada

SELECT
     sys.columns.name
   , sys.tables.name
   , is_identity
FROM sys.columns
INNER JOIN sys.tables ON sys.tables.object_id = sys.columns.object_id
    AND sys.columns.is_identity = 1

Sé que hace mucho tiempo, pero me pareció útil

prueba esto :

IF EXISTS (SELECT * from syscolumns where id = Object_ID(@TABLE_NAME) and colstat & 1 = 1)
BEGIN
   -- Do your things
END

Una forma de hacerlo sería utilizar el procedimiento almacenado sp_help . Es decir:

sp_help MyTable

Esto devolverá un DataSet que tiene toda la información que necesitaría en la tabla. Hay una tabla específica que tiene información sobre identidades.

Es decir:

Si no contiene un campo de identidad, la columna Identidad dirá: "No hay una columna de identidad definida".


IF (OBJECTPROPERTY(OBJECT_ID('TABLE_NAME'), 'TableHasIdentity') = 1) 

ObjectProperty está disponible a partir del servidor SQL 2008 Referencia: OBJECTPROPERTY





sql-server-ce