quando abbiamo bisogno della query di stored procedure che usiamo 'sp_helptext ProcedureName'equivalente di sp_helptext per le tabelle in SQL Server
Può qualcosa di simile essere fatto per le tabelle?
quando abbiamo bisogno della query di stored procedure che usiamo 'sp_helptext ProcedureName'equivalente di sp_helptext per le tabelle in SQL Server
Può qualcosa di simile essere fatto per le tabelle?
Non sembra essere un equivalente diretto di sp_helptext che lavorerà con le tabelle.
I due metodi che sembrano essere comuni su varie bacheche sono:
C'è un articolo sul secondo metodo here
Un paio di esempi del primo metodo può essere visto a http://social.msdn.microsoft.com/Forums/en/transactsql/thread/28eeb603-1607-4b56-9461-3c0502cbec9c - E 'un po' di SQL piuttosto peloso però –
@ Dan F lol - Credo che si controllato il primo risultato per 'tavolo sp_helptext' in google così :) –
@ Davide: Haha, sì, ho avuto un sentore che sarebbe stato un google facile :-) –
Utilizzare followig interrogazione
select * from INFORMATION_SCHEMA.COLUMNS dove table_name = 'TableName'
Usa Alt + F1 mentre il nome tabella selezionata in una finestra di query.
prova con questo SP. Non ha tutte le notazioni richieste per una tabella come le chiavi primarie e le chiavi esterne, ma è un inizio.
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
piuttosto semplice:
sp_help YourTable
@Biswo - ho praticamente dovuto indovinare che cosa la vostra domanda era, è stato molto difficile da leggere. Si prega di confermare che ho interpretato correttamente. –