Create a Table’s DDL Script in SQL Server

You can use below select query to create a table’s ddl script in sql server.

SQL Server ≥ 2017 & Azure SQL

 SELECT tmp.TABLE_SCHEMA, tmp.TABLE_NAME, 'TABLE' type_desc,
  'CREATE TABLE ' + tmp.TABLE_SCHEMA + '.' + tmp.TABLE_NAME + '(' + CHAR(10) +
    tmp.COLUMNS + CHAR(10) +
   ')' object_defination
  FROM (
   SELECT TABLE_SCHEMA, TABLE_NAME,
    STRING_AGG(
    CAST(
      ('  '+COLUMN_NAME + ' ' + DATA_TYPE) +
      (CASE WHEN CHARACTER_MAXIMUM_LENGTH IS NOT NULL THEN '('+ CONVERT(nvarchar(10), CHARACTER_MAXIMUM_LENGTH) +')' ELSE '' END) +
      (CASE WHEN COLLATION_NAME IS NOT NULL THEN ' COLLATE '+ COLLATION_NAME ELSE '' END) +
      (CASE WHEN IS_NULLABLE = 'YES' THEN ' NULL' ELSE ' NOT NULL' END)
     as NVARCHAR(MAX)
    ),
   ','+ CHAR(10)) WITHIN GROUP (ORDER BY ORDINAL_POSITION) AS COLUMNS
   FROM INFORMATION_SCHEMA.COLUMNS
   --WHERE TABLE_SCHEMA = '<Schema name>' AND TABLE_NAME = '<Table name>'
   GROUP BY TABLE_SCHEMA, TABLE_NAME
  ) tmp

SQL Server ≤ 2016

WITH create_table_defination AS (
 SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, COLLATION_NAME, IS_NULLABLE, ORDINAL_POSITION
 FROM INFORMATION_SCHEMA.COLUMNS
 )
SELECT
 t0.TABLE_SCHEMA,
 t0.TABLE_NAME,
 'TABLE' type_desc,
 'CREATE TABLE ' + t0.TABLE_SCHEMA + '.' + t0.TABLE_NAME + '(' + CHAR(10) +
   REPLACE(STUFF((
     SELECT
     CAST(',' +
         ('  ' + t1.COLUMN_NAME + ' ' + t1.DATA_TYPE) +
         (CASE WHEN t1.CHARACTER_MAXIMUM_LENGTH IS NOT NULL THEN '(' + CONVERT(nvarchar(10), t1.CHARACTER_MAXIMUM_LENGTH) + ')' ELSE '' END) +
         (CASE WHEN t1.COLLATION_NAME IS NOT NULL THEN ' COLLATE ' + COLLATION_NAME ELSE '' END) +
         (CASE WHEN t1.IS_NULLABLE = 'YES' THEN ' NULL' ELSE ' NOT NULL' END)
      as NVARCHAR(MAX)
      )
 FROM create_table_defination t1
 WHERE t1.TABLE_SCHEMA = t0.TABLE_SCHEMA AND t1.TABLE_NAME = t0.TABLE_NAME
 ORDER BY t1.ORDINAL_POSITION
  FOR XML PATH('')), 1, 1, ''),
   ',',
   ',' + CHAR(10)) +
   CHAR(10)+ ')'
  AS object_defination
FROM
 create_table_defination t0
GROUP BY
 t0.TABLE_SCHEMA, t0.TABLE_NAME

Almanca Sayılar – Gramer Notları 8

Almanca’da sayılar 0 ile 20 arasında çok az değişiklik gösterir. Ancak 20’den sonraki sayıların yazımı İngilizce’den farklıdır.

Örneğin, 21 Almanca’da “einundzwanzig” olarak yazılır ve 30 “dreißig” olarak. 100’ü “einhundert” olarak yazmaktadır. 1000 ise “eintausend” olarak yazılmaktadır.

SayıYazılışıOkunuşuSayıYazılışıOkunuşu
0nullnool11elfelf
1einsains12zwölftsvulf
2zweitsvai13dreizehndraytseyn
3dreidray14vierzehnfiirzeyn
4vierfiir15fünfzehnfynfzeyn
5fünffynf16sechzehnzekszeyn
6sechszeks17siebzehnzibzeyn
7siebenziben18achtzehnaktzeyn
8achtakt19neunzehnnoynzeyn
9neunnoyn20zwanzigtsvantsig
10zehntsen
20 ye kadar olan Almanca sayıların yazılışı ve okunuşu

Almanca’da sayılar 20’den sonraki sayıları yazmak için, 20’den sonraki sayıların başına “und” eklenir.

Örneğin: 21 = “einundzwanzig”, 22 = “zweiundzwanzig” vb. Bu formül, almanca’da 20’den sonraki tüm sayıları yazmak için kullanılır.

Almanca’da 20 den 100 e kadar olan sayıların formül şeklinde yazılması için aşağıdaki kurallar kullanılır:

  1. 20-29 arası sayılar için “zwanzig” eklenir. Örneğin: 20 = “zwanzig”, 21 = “einundzwanzig”, 22 = “zweiundzwanzig” vb.
  2. 30-99 arası sayılar için rakamların başına “dreißig”, “vierzig”, “fünfzig”, “sechzig”, “siebzig”, “achtzig” veya “neunzig” eklenir. Örneğin: 30 = “dreißig”, 40 = “vierzig”, 50 = “fünfzig” vb.
  3. 30-99 arası sayılar için 20’den küçük bir sayının adı eklenir. Örneğin: 31 = “einunddreißig”, 42 = “zweiundvierzig”, 59 = “neunundfünfzig” vb.

Formül olarak ifade edersek:

Sayının yazılışı = [Sayının başına gelecek rakam] + “zig” + [“und” + [20’den küçük sayının yazılışı]] (20-99 arası sayılar için)

Not: Almanca sayının başına gelecek rakamların yazılışı:

30 = “dreißig”, 40 = “vierzig”, 50 = “fünfzig”, 60 = “sechzig”, 70 = “siebzig”, 80 = “achtzig”, 90 = “neunzig”