
SQL Server 怎样使用SQL输出建表语句
展开全部
DECLARE @SelectTableName VARCHAR(400)
--查询表名
SET @SelectTableName = '表名';
WITH t1
AS ( SELECT t.name AS tableName ,
c.name AS columnName ,
ty.name AS typeName ,
CASE c.is_nullable
WHEN 1 THEN 'null'
ELSE 'not null'
END notNullConstraint ,
c.max_length AS typeLength ,
CASE WHEN c.max_length IN ( 8000, 1, -1, 4, 8 )
THEN c.name + ' ' + ty.name + ','
ELSE c.name + ' ' + ty.name + '('
+ CONVERT(VARCHAR, c.max_length) + ')' + ','
END columnDef
FROM sys.columns c
INNER JOIN sys.tables t ON t.object_id = c.object_id
INNER JOIN sys.schemas sch ON t.schema_id = sch.schema_id
INNER JOIN sys.types ty ON ty.system_type_id = c.system_type_id
WHERE ty.name <> 'sysname'
AND t.name = @SelectTableName
)
SELECT 'Create Table ' + @SelectTableName + '(' + LEFT(( SELECT
columnDef + ' '
FROM
t1
FOR
XML
PATH('')
), LEN(( SELECT
columnDef + ' '
FROM
t1
FOR
XML
PATH('')
)) - 1) + ');' CreateTableQuery
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询