需要为现有 SQL Server 表快速生成 CREATE TABLE
语句? 本指南展示了如何使用查询、利用 sys.tables
.
一种方法涉及构建动态 SQL 语句。 基本结构是这样开始的:
<code class="language-sql">DECLARE @sql NVARCHAR(MAX) = 'CREATE TABLE [' + @table_name + '] (';</code>
这会动态构造 CREATE TABLE
语句的初始部分,并将 @table_name
替换为实际的表名称。
接下来,您将附加列详细信息:名称、数据类型、长度、可为空性和任何约束。 以下是名为 VARCHAR
的 CustomerName
列的示例:
<code class="language-sql">@sql += CHAR(9) + ', [' + c.name + '] ' + UPPER(tp.name) + ' (' + CASE WHEN c.max_length = -1 THEN 'MAX' ELSE CAST(c.max_length AS VARCHAR(5)) END + ')' + CASE WHEN c.is_nullable = 1 THEN ' NULL' ELSE ' NOT NULL' END + CHAR(13);</code>
此代码片段添加列定义,适当处理 MAX
长度并指定可为空性。 您将为每一列重复此操作。
最后,您将添加主键和外键约束。 构建完整的 CREATE TABLE
语句后,使用:
<code class="language-sql">PRINT CAST(@sql AS NTEXT);</code>
显示生成的脚本。 请注意,确切的脚本将根据表的具体结构和约束而有所不同。
以上是如何使用查询为现有表生成 SQL CREATE 脚本?的详细内容。更多信息请关注PHP中文网其他相关文章!