SQL Server’da Veritabanındaki Tüm Tabloların Scriptini Almak
Herkese merhaba, Bu yazıda SQL Server’da veritabanındaki tüm tabloların scriptini almak hakkında bilgi vereceğim. SQL Server’da bazı durumlarda bir tablonun ya da tüm tabloların scriptini alma ihtiyacınız olabilir. Aşağıdaki kod yardımıyla bu işlemi kolaylıkla yapabilirsiniz.
SELECT 'CREATE TABLE [' + so.name + '] (' + o.list + ')'
+ CASE
WHEN tc.Constraint_Name IS NULL THEN
''
ELSE
'ALTER TABLE [' + so.Name + '] ADD CONSTRAINT ' + tc.Constraint_Name + ' PRIMARY KEY ' + ' ('
+ LEFT(j.list, LEN(j.list) - 1) + ')'
END
FROM sysobjects so
CROSS APPLY
(
SELECT ' [' + column_name + '] ' + data_type
+ CASE data_type
WHEN 'sql_variant' THEN
''
WHEN 'text' THEN
''
WHEN 'ntext' THEN
''
WHEN 'xml' THEN
''
WHEN 'decimal' THEN
'(' + CAST(numeric_precision AS VARCHAR) + ', ' + CAST(numeric_scale AS VARCHAR) + ')'
ELSE
COALESCE( '(' + CASE
WHEN character_maximum_length = -1 THEN
'MAX'
ELSE
CAST(character_maximum_length AS VARCHAR)
END + ')',
''
)
END + ' '
+ CASE
WHEN EXISTS
(
SELECT id
FROM syscolumns
WHERE OBJECT_NAME(id) = so.name
AND name = '[' + column_name + ']'
AND COLUMNPROPERTY(id, name, 'IsIdentity') = 1
) THEN
'IDENTITY(' + CAST(IDENT_SEED(so.name) AS VARCHAR) + ',' + CAST(IDENT_INCR(so.name) AS VARCHAR)
+ ')'
ELSE
''
END + ' ' + (CASE
WHEN IS_NULLABLE = 'No' THEN
'NOT '
ELSE
''
END
) + 'NULL ' + CASE
WHEN information_schema.columns.COLUMN_DEFAULT IS NOT NULL THEN
'DEFAULT ' + information_schema.columns.COLUMN_DEFAULT
ELSE
''
END + ', '
FROM information_schema.columns
WHERE table_name = so.name
ORDER BY ordinal_position
FOR XML PATH('')
) o(list)
LEFT JOIN information_schema.table_constraints tc
ON tc.Table_name = so.Name
AND tc.Constraint_Type = 'PRIMARY KEY'
CROSS APPLY
(
SELECT '[' + Column_Name + '], '
FROM information_schema.key_column_usage kcu
WHERE kcu.Constraint_Name = tc.Constraint_Name
ORDER BY ORDINAL_POSITION
FOR XML PATH('')
) j(list)
WHERE xtype = 'U'
AND name NOT IN ( 'dtproperties' );
Kodu seçmiş olduğunuz veritabanı üzerinde çalıştırdığınızda aşağıdaki gibi bir sonuç göreceksiniz. Görüldüğü üzere tüm tabloların scriptini oluşturmuş oldu. Dilediğinizi seçip kullanabilirsiniz.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.