SQL SERVER 生成表结构的语句

--获取表结构创建脚本 
Alter Proc sp_SYS_CreateTableSQL_Struct(@TableName sysname)   
AS      
SET NOCOUNT ON      DECLARE @ObjectID int     
DECLARE @TableScript Table(Iden Int IDENTITY(1, 1) ,ScriptLine nvarchar(4000))    
SET @ObjectID = object_id(@TableName)      
IF @ObjectID IS NULL OR OBJECTPROPERTY(@ObjectID, 'IsTable') = 0     
BEGIN      
RAISERROR('指定的对象不是表对象', 16, 1)      
RETURN     
END           --获取表的创建脚本     

--插入表头      
INSERT INTO @TableScript(ScriptLine)     
SELECT 'Create Table ' + USER_NAME(OBJECTPROPERTY(@ObjectID, 'OwnerId')) + '.' + object_name(@ObjectID) + '('       --插入字段      INSERT INTO @TableScript(ScriptLine)      SELECT   ' ' + a.Name + ' ' + b.name + '' +           CASE WHEN c.Object_id IS NOT NULL THEN ' Identity(' +  CONVERT(nvarchar, c.seed_value) + ', ' + CONVERT(nvarchar, c.increment_value) + ')'            ELSE '' END +         CASE WHEN b.xusertype IN (167, 175, 231, 239) THEN '(' + CONVERT(nvarchar, a.prec) + ')'          WHEN b.xusertype in (106, 108) THEN  '(' + CONVERT(nvarchar, a.xprec) + ',   ' + CONVERT(nvarchar, a.xscale) + ')'         ELSE '' END +         CASE a.isnullable WHEN 1 THEN '' ELSE ' Not' END + ' Null' +        CASE WHEN d.Name IS NOT NULL THEN ' Default' + d.Definition ELSE '' END +         ','        FROM sys.syscolumns a       LEFT JOIN sys.systypes b ON a.xusertype = b.xusertype       LEFT JOIN sys.identity_columns c ON c.Object_id = a.ID AND c.Column_ID = a.ColID       LEFT JOIN sys.default_constraints d ON d.Parent_Object_ID = a.ID AND d.Parent_column_ID = a.ColI
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值