sql >> Database >  >> RDS >> Sqlserver

SQL Server equivalent aan DBMS_METADATA.GET_DDL

Ik gebruik deze query voor het genereren van een query, maar dit werkt voor 1 tabel:

declare @vsSQL varchar(8000)
declare @vsTableName varchar(50)
select @vsTableName = 'Customers'

select @vsSQL = 'CREATE TABLE ' + @vsTableName + char(10) + '(' + char(10)

select @vsSQL = @vsSQL + ' ' + sc.Name + ' ' +
st.Name +
case when st.Name in ('varchar','varchar','char','nchar') then '(' + cast(sc.Length as varchar) + ') ' else ' ' end +
case when sc.IsNullable = 1 then 'NULL' else 'NOT NULL' end + ',' + char(10)
from sysobjects so
join syscolumns sc on sc.id = so.id
join systypes st on st.xusertype = sc.xusertype
where so.name = @vsTableName
order by
sc.ColID

select substring(@vsSQL,1,len(@vsSQL) - 2) + char(10) + ')'


  1. SQL*Plus:Forceer het om een ​​foutcode te retourneren

  2. Hoe om te gaan met gelijktijdige invoegingen in DB die een overtreding van een regel voor de records in de database veroorzaken?

  3. mysql selecteer het aantal records voor elke maand

  4. Hoe stel je AUTO_INCREMENT in Laravel in met Eloquent?