Wenn wir benötigen, um die Abfrage von gespeicherten Prozeduren wir ‚sp_helptext prozedur‘Equivalent von sp_helptext für Tabellen in SQL Server
Kann etwas ähnliches für Tabellen verwenden getan werden?
Wenn wir benötigen, um die Abfrage von gespeicherten Prozeduren wir ‚sp_helptext prozedur‘Equivalent von sp_helptext für Tabellen in SQL Server
Kann etwas ähnliches für Tabellen verwenden getan werden?
Es scheint keine direkte Entsprechung von sp_helptext zu geben, die mit Tabellen funktionieren wird.
Die beiden Methoden, die auf verschiedenen Message Boards üblich zu sein scheinen, sind:
Es ist ein Artikel auf dem zweiten Verfahren here
Ein paar Beispiele der ersten Methode können bei http://social.msdn.microsoft.com/Forums/en/transactsql/thread/28eeb603-1607-4b56-9461-3c0502cbec9c gesehen werden - es ist einige ziemlich haarige SQL obwohl –
@Dan F lol - Ich denke du hast das erste Ergebnis für 'sp_helptext table' auch in google überprüft :) –
@David: Haha, ja, ich hatte eine Ahnung es wäre ein einfaches Google :-) –
Bitte verwenden followig Abfrage
select * from INFORMATION_SCHEMA.COLUMNS wo table_name = 'Tablename'
Verwenden Sie Alt + F1, während der Tabellenname in einem Abfragefenster ausgewählt wurde.
Versuchen Sie mit diesem SP. Es enthält nicht alle Notationen, die für eine Tabelle wie Primärschlüssel und Fremdschlüssel benötigt werden, ist aber ein Anfang.
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
ganz einfach:
sp_help YourTable
@Biswo - ich ziemlich viel hatte zu erraten, was Ihre Frage war, war es sehr schwer zu lesen. Bitte bestätigen Sie, dass ich richtig interpretiert habe. –