cuando necesitamos la consulta de los procedimientos almacenados que utilizamos 'ProcedureName sp_helptext'Equivalente de sp_helptext para las tablas en SQL Server
¿Puede algo similar puede hacer para las tablas?
cuando necesitamos la consulta de los procedimientos almacenados que utilizamos 'ProcedureName sp_helptext'Equivalente de sp_helptext para las tablas en SQL Server
¿Puede algo similar puede hacer para las tablas?
No parece haber un equivalente directo de sp_helptext que funcione con tablas.
Los dos métodos que parecen ser comunes en varios tableros de mensajes son:
Hay un artículo en el segundo método here
Un par de ejemplos del primer método se puede ver en http://social.msdn.microsoft.com/Forums/en/transactsql/thread/28eeb603-1607-4b56-9461-3c0502cbec9c - es un poco de SQL peluda aunque –
@Dan F lol - Supongo que también verificaste el primer resultado de 'sp_helptext table' en google :) –
@David: Jaja, sí, tenía la certeza de que sería un google fácil :-) –
Utilice followig consulta
SELECT * FROM nombre_tabla donde INFORMATION_SCHEMA.COLUMNS = 'TableName'
Use Alt + F1 mientras se selecciona el nombre de la tabla en una ventana de consulta.
Pruebe con este SP. No tiene todas las anotaciones requeridas para una tabla como claves principales y claves externas, pero es un comienzo.
CREATE PROCEDURE [dbo].[GeneradorTablas]
@Tabla AS VARCHAR(100)
AS
BEGIN
DECLARE @Script AS VARCHAR(MAX) ='CREATE TABLE [dbo].[' + @Tabla + '](' + CHAR(13)
DECLARE @Columnas As TABLE(indice INT, Columna VARCHAR(1000))
INSERT INTO @Columnas
SELECT
ROW_NUMBER()OVER(ORDER BY C.column_id),
' [' + C.name + '] [' + TY.name + ']' +
CASE WHEN
TY.name='nvarchar' OR
TY.name='nchar' OR
TY.name='char' OR
TY.name='varbinary' OR
TY.name='varchar' OR
TY.name='text' THEN
'(' + CASE WHEN C.max_length>0 THEN CAST(C.max_length AS VARCHAR(10)) ELSE 'MAX' END + ')' ELSE ''
END +
CASE WHEN C.is_identity=1 THEN ' IDENTITY(1,1)' ELSE '' END +
' ' + CASE WHEN C.is_nullable=1 THEN 'NULL' ELSE 'NOT NULL' END + ','
FROM SYS.COLUMNS AS C
INNER JOIN SYS.TYPES AS TY ON C.system_type_id=TY.system_type_id
INNER JOIN SYS.TABLES AS T ON C.object_id=T.object_id
WHERE [email protected]
DECLARE @i AS INT
SELECT @i=MIN(indice) FROM @Columnas
WHILE @i IS NOT NULL
BEGIN
SELECT @Script+=Columna+CHAR(13) FROM @Columnas WHERE [email protected]
SELECT @i=MIN(indice) FROM @Columnas WHERE indice>@i
END
SET @Script=SUBSTRING(@Script,0,LEN(@Script)-1) + CHAR(13) + ')'
PRINT @Script
END
GO
bastante simple:
sp_help YourTable
@Biswo - Ya casi me tuviera que adivinar cuál era su pregunta, que era muy difícil de leer. Por favor confirme que he interpretado correctamente. –