Lorsque nous avons besoin de la requête de procédures stockées que nous utilisons « sp_helptext ProcedureName »équivalent de sp_helptext pour les tables dans SQL Server
Peut-être quelque chose de similaire fait pour les tables?
Lorsque nous avons besoin de la requête de procédures stockées que nous utilisons « sp_helptext ProcedureName »équivalent de sp_helptext pour les tables dans SQL Server
Peut-être quelque chose de similaire fait pour les tables?
Il ne semble pas y avoir d'équivalent direct de sp_helptext qui fonctionnera avec les tables.
Les deux méthodes qui semblent être communes sur différents forums sont:
Il y a un article sur la deuxième méthode here
Un couple d'exemples de la première méthode peut être vu à http://social.msdn.microsoft.com/Forums/en/transactsql/thread/28eeb603-1607-4b56-9461-3c0502cbec9c - c'est un peu de SQL bien poilu si –
@Dan F lol - Je suppose que vous avez vérifié le premier résultat pour 'sp_helptext table' dans google aussi bien :) –
@David: Haha, oui, j'avais une idée que ce serait un google facile :-) –
S'il vous plaît utiliser followig requête
select * from INFORMATION_SCHEMA.COLUMNS où table_name = 'TableName'
Utilisez Alt + F1 lorsque le nom de la table est sélectionné dans une fenêtre de requête.
Essayez avec ce SP. Il n'a pas toutes les notations requises pour une table comme les clés primaires et les clés étrangères, mais c'est un début.
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
simple:
sp_help YourTable
@Biswo - je assez bien dû deviner quelle était votre question, il était très difficile à lire. S'il vous plaît confirmer que j'ai bien interprété. –