init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,95 @@
|
|||
DROP PROCEDURE IF EXISTS dev.uspGenerateInsertScript
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE dev.uspGenerateInsertScript
|
||||
@pObjectName nvarchar(max)
|
||||
,@pColumNameAs bit = 1
|
||||
,@pIdentityInsert varchar(3) = 'off' -- on / off
|
||||
,@pValuesOrSelect varchar(6) = 'select' -- select / values
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
IF @pIdentityInsert NOT IN ('on', 'off') OR @pValuesOrSelect NOT IN ('values', 'select') BEGIN
|
||||
RAISERROR('@pIdentityInsert értéke ''on'' vagy ''off'' lehet, alapértelmezett az on. @pValuesOrSelect értéke ''select'' vagy ''values'' lehet, alapértelmezett a select', 16, 1)
|
||||
RETURN
|
||||
END
|
||||
|
||||
DECLARE
|
||||
@table nvarchar(max)
|
||||
,@schema nvarchar(max)
|
||||
|
||||
IF CHARINDEX('.', @pObjectName) = 0 BEGIN
|
||||
SET @table = @pObjectName
|
||||
SET @schema = 'dbo'
|
||||
END
|
||||
ELSE BEGIN
|
||||
SET @schema = LEFT(@pObjectName, CHARINDEX('.', @pObjectName) - 1)
|
||||
SET @table = SUBSTRING(@pObjectName, CHARINDEX('.', @pObjectName) + 1, 1000)
|
||||
END
|
||||
|
||||
DECLARE @tableVariable TABLE (
|
||||
Id int identity(1,1) primary key
|
||||
,Ertek nvarchar(max)
|
||||
)
|
||||
|
||||
IF @pIdentityInsert = 'on' BEGIN
|
||||
INSERT INTO @tableVariable (Ertek)
|
||||
SELECT 'SET IDENTITY_INSERT ' + @pObjectName + ' ON;'
|
||||
END
|
||||
|
||||
INSERT INTO @tableVariable (Ertek)
|
||||
SELECT 'INSERT INTO ' + @pObjectName + ' ('
|
||||
|
||||
INSERT INTO @tableVariable (Ertek)
|
||||
SELECT
|
||||
IIF(ROW_NUMBER() OVER(ORDER BY c.column_id) = 1 , ' ' , ' ,') + c.name
|
||||
FROM sys.columns c
|
||||
INNER JOIN sys.tables t ON t.object_id = c.object_id
|
||||
INNER JOIN sys.schemas s ON s.schema_id = t.schema_id
|
||||
WHERE s.name = @schema
|
||||
AND t.name = @table
|
||||
AND (@pIdentityInsert = 'on' OR c.is_identity = 0)
|
||||
ORDER BY c.column_id
|
||||
|
||||
INSERT INTO @tableVariable (Ertek)
|
||||
SELECT IIF(@pValuesOrSelect = 'select' ,') SELECT', ') VALUES (')
|
||||
|
||||
INSERT INTO @tableVariable (Ertek)
|
||||
SELECT
|
||||
IIF(ROW_NUMBER() OVER(ORDER BY c.column_id) = 1 , ' ' , ' ,')
|
||||
+ IIF(@pColumNameAs = 1, c.name, ISNULL(IIF(ty.name IN ('int', 'float', 'numeric'), REPLACE(REPLACE(d.definition, '(', ''), ')', ''), REPLACE(SUBSTRING(d.definition, 2, LEN(d.definition) - 2), 'getdate', 'GETDATE')), 'NULL'))
|
||||
+ IIF(@pValuesOrSelect = 'select' ,' AS ', ' -- ')
|
||||
+ c.name
|
||||
+ ' -- '
|
||||
+ IIF(c.is_nullable = 1, '', '* ')
|
||||
+ ty.name
|
||||
+ CASE
|
||||
WHEN c.max_length = -1 THEN '(max)'
|
||||
WHEN ty.name IN ('nchar', 'nvarchar') THEN '(' + CAST(c.max_length / 2 AS nvarchar(5)) + ')'
|
||||
WHEN ty.name IN ('char', 'varchar') THEN '(' + CAST(c.max_length AS nvarchar(5)) + ')'
|
||||
ELSE ''
|
||||
END
|
||||
FROM sys.columns c
|
||||
INNER JOIN sys.tables t ON t.object_id = c.object_id
|
||||
INNER JOIN sys.schemas s ON s.schema_id = t.schema_id
|
||||
INNER JOIN sys.types ty ON ty.user_type_id = c.user_type_id
|
||||
LEFT JOIN sys.default_constraints d ON d.object_id = c.default_object_id
|
||||
WHERE s.name = @schema
|
||||
AND t.name = @table
|
||||
AND (@pIdentityInsert = 'on' OR c.is_identity = 0)
|
||||
ORDER BY c.column_id
|
||||
|
||||
INSERT INTO @tableVariable (Ertek)
|
||||
SELECT IIF(@pValuesOrSelect = 'select' ,'FROM ', ');')
|
||||
|
||||
IF @pIdentityInsert = 'on' BEGIN
|
||||
INSERT INTO @tableVariable (Ertek)
|
||||
SELECT 'SET IDENTITY_INSERT ' + @pObjectName + ' OFF;'
|
||||
END
|
||||
|
||||
SELECT Ertek
|
||||
FROM @tableVariable
|
||||
ORDER BY id
|
||||
END
|
||||
GO
|
Loading…
Add table
Add a link
Reference in a new issue