Bonjour,
je cherche l'equivalence de ces définitions pour SQL Server
- TABLESPACE_NAME
- SYS.DBA_TABLES
- SYS.DBA_IND_COLUMNS
- SYS.ALL_IND_EXPRESSIONS
- SYS.ALL_TAB_COLS
Merci d'avance.
Bonjour,
je cherche l'equivalence de ces définitions pour SQL Server
- TABLESPACE_NAME
- SYS.DBA_TABLES
- SYS.DBA_IND_COLUMNS
- SYS.ALL_IND_EXPRESSIONS
- SYS.ALL_TAB_COLS
Merci d'avance.
Il n'y a pas de tablespace chez SQL Server.
Pour les tables et colonnes :
Pour les indexes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select * from information_schema.tables; select * from information_schema.columns;
Il y a peut-être des jointures à faire avec une autre vue système pour récupérer d'autres informations, mais ça vous fait une bonne base de rechercher déjà.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select * from sys.indexes; select * from sys.index_columns;
Tout à fait .. on pourait cependant dire que "l'équivalent" serait les FILEGROUPS.Il n'y a pas de tablespace chez SQL Server.
++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM sys.filegroups; SELECT * FROM sys.data_spaces;
Bien sur que si... ! Les table_space ne sont que des noms données à ce que l'on appelle des storage ou espace de stockage. Chez MS SQL Server et Sybase cela s'appelle des "file_group" et c'est exactement la même chose !
Donc sys.data_spaces
Pour les autres :
SYS.DBA_TABLES =>
SYS.DBA_IND_COLUMNS =>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 1) SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' 2) SELECT * FROM sys.tables 3) SELECT * FROM sys.all_objects WHERE type_desc = 'USER_TABLE'
SYS.ALL_IND_EXPRESSIONS => (les colonnes calculées indexées)
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM sys.index_columns
SYS.ALL_TAB_COLS =>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT * FROM sys.indexes AS i INNER JOIN sys.index_columns AS ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id INNER JOIN sys.columns AS c ON ic.object_id = c.object_id AND ic.column_id = c.column_id WHERE c.is_computed = 1
1) INFORMATION_SCHEMA.COLUMNS
2) sys.columns
Entre nous, ce serait tellement mieux si Oracle respectait la norme sql avec INFORMATION_SCHEMA !
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Au temps pour moi pour les tablespaces alors !
je vous remercie tous pour votre aide, mon problème est résolu grâce à vous. Au prochain problème alors![]()
j'ai encore besoin de votre aide, je cherche l'équivalence de ces deux champs avec SQL Server : SYS.DBA_IND_COLUMNS.CHAR_LENGTH
et SYS.DBA_IND_COLUMNS.DESCEND
et je veux aussi savoir si vous avez une idée de ce champs : COLUMN_EXPRESSION
j'ai longtemps cherché mais je n'ai rien trouvé, merci de votre aide!
Partager