Sql Solutions
  • Home
  • Sql

Wednesday, 13 July 2016

Generate Script of a Table in Sql server (Using Query)

 Unknown     04:53     No comments   

Step 1. Please pass Your table Name in this Stored Procedure and get script



Create Proc dbo.Ravi_Script_Table
(@tablename varchar(50))
as
begin

    DECLARE
          @object_name SYSNAME
        , @object_id INT
        , @SQL NVARCHAR(MAX)
    
    SELECT
          @object_name = '[' + OBJECT_SCHEMA_NAME(o.[object_id]) + '].[' + OBJECT_NAME([object_id]) + ']'
        , @object_id = [object_id]
    FROM (SELECT [object_id] = OBJECT_ID(@tablename, 'U')) o
    
    SELECT @SQL = 'CREATE TABLE ' + @object_name + CHAR(13) + '(' + CHAR(13) + STUFF((
        SELECT CHAR(13) + '    , [' + c.name + '] ' + 
            CASE WHEN c.is_computed = 1
                THEN 'AS ' + OBJECT_DEFINITION(c.[object_id], c.column_id)
                ELSE 
                    CASE WHEN c.system_type_id != c.user_type_id 
                        THEN '[' + SCHEMA_NAME(tp.[schema_id]) + '].[' + tp.name + ']' 
                        ELSE '[' + UPPER(tp.name) + ']' 
                    END  + 
                    CASE 
                        WHEN tp.name IN ('varchar', 'char', 'varbinary', 'binary')
                            THEN '(' + CASE WHEN c.max_length = -1 
                                            THEN 'MAX' 
                                            ELSE CAST(c.max_length AS VARCHAR(5)) 
                                        END + ')'
                        WHEN tp.name IN ('nvarchar', 'nchar')
                            THEN '(' + CASE WHEN c.max_length = -1 
                                            THEN 'MAX' 
                                            ELSE CAST(c.max_length / 2 AS VARCHAR(5)) 
                                        END + ')'
                        WHEN tp.name IN ('datetime2', 'time2', 'datetimeoffset') 
                            THEN '(' + CAST(c.scale AS VARCHAR(5)) + ')'
                        WHEN tp.name = 'decimal'
                            THEN '(' + CAST(c.[precision] AS VARCHAR(5)) + ',' + CAST(c.scale AS VARCHAR(5)) + ')'
                        ELSE ''
                    END +
                    CASE WHEN c.collation_name IS NOT NULL AND c.system_type_id = c.user_type_id 
                        THEN ' COLLATE ' + c.collation_name
                        ELSE ''
                    END +
                    CASE WHEN c.is_nullable = 1 
                        THEN ' NULL'
                        ELSE ' NOT NULL'
                    END +
                    CASE WHEN c.default_object_id != 0 
                        THEN ' CONSTRAINT [' + OBJECT_NAME(c.default_object_id) + ']' + 
                             ' DEFAULT ' + OBJECT_DEFINITION(c.default_object_id)
                        ELSE ''
                    END + 
                    CASE WHEN cc.[object_id] IS NOT NULL 
                        THEN ' CONSTRAINT [' + cc.name + '] CHECK ' + cc.[definition]
                        ELSE ''
                    END +
                    CASE WHEN c.is_identity = 1 
                        THEN ' IDENTITY(' + CAST(IDENTITYPROPERTY(c.[object_id], 'SeedValue') AS VARCHAR(5)) + ',' + 
                                        CAST(IDENTITYPROPERTY(c.[object_id], 'IncrementValue') AS VARCHAR(5)) + ')' 
                        ELSE '' 
                    END 
            END
        FROM sys.columns c WITH(NOLOCK)
        JOIN sys.types tp WITH(NOLOCK) ON c.user_type_id = tp.user_type_id
        LEFT JOIN sys.check_constraints cc WITH(NOLOCK) 
             ON c.[object_id] = cc.parent_object_id 
            AND cc.parent_column_id = c.column_id
        WHERE c.[object_id] = @object_id
        ORDER BY c.column_id
        FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 7, '      ') + 
        ISNULL((SELECT '
        , CONSTRAINT [' + i.name + '] PRIMARY KEY ' + 
        CASE WHEN i.index_id = 1 
            THEN 'CLUSTERED' 
            ELSE 'NONCLUSTERED' 
        END +' (' + (
        SELECT STUFF(CAST((
            SELECT ', [' + COL_NAME(ic.[object_id], ic.column_id) + ']' +
                    CASE WHEN ic.is_descending_key = 1
                        THEN ' DESC'
                        ELSE ''
                    END
            FROM sys.index_columns ic WITH(NOLOCK)
            WHERE i.[object_id] = ic.[object_id]
                AND i.index_id = ic.index_id
            FOR XML PATH(N''), TYPE) AS NVARCHAR(MAX)), 1, 2, '')) + ')'
        FROM sys.indexes i WITH(NOLOCK)
        WHERE i.[object_id] = @object_id
            AND i.is_primary_key = 1), '') + CHAR(13) + ');'
    
    PRINT @SQL
  
  
end
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
Email ThisBlogThis!Share to XShare to Facebook
Newer Post Older Post Home

0 comments:

Post a Comment

About Me

Unknown
View my complete profile

Popular Posts

  • How to use cursor in SQL Server
    Please Use  this in your procedures and functions    DECLARE  C21 CURSOR FOR  <Query to find Value on basis of ...>    OPEN C21  ...
  • Reduce log file size in sql server
    Dear all these are the query to reduce  size of log file in sql  Query 1 ALTER DATABASE databasename SET RECOVERY SIMP...
  • Shrink Database File
    By Using This query we can reduce database file Firstly we should get File Name by Using This with TblSpace as (     select       ...
  • Right Use of Transaction Using TRY catch
    This is right use of SQL transaction Using TRY Catch for  Avoid DeadLock Condition BEGIN TRANSACTION TransRavi BEGIN TRY <Do Y...
  • Calculate Age in SQL Server
    Please Pass your date of birth in "DD/MM/YYYY" format and get age ..... Create a Procedure... create Proc dbo.CalculateAge...
  • Remove Deadloack Condition in sql server
    Use this query to drop all kind of Transaction Deadlock in Sql Server ALTER DATABASE <DataBase Name> SET SINGLE_USER WITH ROLLBACK ...
  • Find text in whole database procedures
    For Finding particular text in stored procedures  please put your text on the place of <Text> and get result... SELECT  c.name...
  • Generate Script of a Table in Sql server (Using Query)
    Step 1. Please pass Your table Name in this Stored Procedure and get script Create Proc dbo.Ravi_Script_Table (@tablename varchar(50)) ...
  • Get Script of Stored Procedures and views
    Please Write this qurey and get
  • Kill Sleeping Threads in SQL to Remove DeadLock Condition
     Use This Process to Kill sleeping Threads in sql CREATE proc [dbo].[KillProcess]                as              begin      declare @ms...

Copyright © Sql Solutions | Powered by Blogger
Design by Ravi Budania