Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server, еквивалентен на DBMS_METADATA.GET_DDL

Използвам тази заявка за генериране на заявка, но това работи за 1 таблица:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте двоичен низ от нули с променлива дължина

  2. Как да накарам SQL Server да намери вход, съответстващ на предоставеното име?

  3. Има ли грешка в SqlDataReader.HasRows при работа срещу SQL Server 2008?

  4. Не може да се свърже със SQL Server с PHP

  5. Странност на кода за връщане на съхранена процедура на SQL Server