Sql server - Script com validação

02/12/2019

7

Prezados, boa tarde!

Alguém sabe uma maneira de gerar script com o SQL SERVER 2017 onde já é validado se aquela informação existe ou não?
Atualmente quando exportado um script o arquivo fica:
INSERT [dbo].[Menu] ([Actions], [Description], [Group], [Icon], [Id], [Name], [Order], [ParentId], [Path], [Type], [System], [Deactivated], [StateAcronym], [AuthorId]) VALUES (NULL, NULL, NULL, NULL, N'8aed5bb2-aa2b-4673-8083-023ace9701e5', N'Tipo de documento de garantia', 3, N'ee8081ca-e441-49eb-b4a9-32eb289ba17d', N'#/registro/garantia', 2, 18, 0, NULL, NULL)


Há alguma maneira que fique algo semelhante ao exemplo abaixo?
IF NOT EXISTS (SELECT * FROM MENU WHERE ID='8aed5bb2-aa2b-4673-8083-023ace9701e5')
INSERT [dbo].[Menu] ([Actions], [Description], [Group], [Icon], [Id], [Name], [Order], [ParentId], [Path], [Type], [System], [Deactivated], [StateAcronym], [AuthorId]) VALUES
IF EXISTS  (SELECT * FROM MENU WHERE ID='8aed5bb2-aa2b-4673-8083-023ace9701e5')
UPDATE [dbo].[Menu] ([Actions], [Description], [Group], [Icon], [Id], [Name], [Order], [ParentId], [Path], [Type], [System], [Deactivated], [StateAcronym], [AuthorId]) SET
Responder

Posts

03/12/2019

Bruno Pardim

iaew cara, você poderia fazer assim por exemplo:

IF (SELECT COUNT(*) FROM MENU WHERE ID ='8aed5bb2-aa2b-4673-8083-023ace9701e5') = 0
	BEGIN
		INSERT [dbo].[Menu] 
					([Actions], 
					[Description], 
					[Group], 
					[Icon], 
					[Id], 
					[Name], 
					[Order], 
					[ParentId], 
					[Path], 
					[Type], 
					[System], 
					[Deactivated], 
					[StateAcronym], 
					[AuthorId])
					VALUES
					//campos .....
	END
ELSE
	BEGIN

		UPDATE [dbo].[Menu] 
				SET
				//campos....
	END
Responder

03/12/2019

Chromusmaster

iaew cara, você poderia fazer assim por exemplo:

IF (SELECT COUNT(*) FROM MENU WHERE ID ='8aed5bb2-aa2b-4673-8083-023ace9701e5') = 0
	BEGIN
		INSERT [dbo].[Menu] 
					([Actions], 
					[Description], 
					[Group], 
					[Icon], 
					[Id], 
					[Name], 
					[Order], 
					[ParentId], 
					[Path], 
					[Type], 
					[System], 
					[Deactivated], 
					[StateAcronym], 
					[AuthorId])
					VALUES
					//campos .....
	END
ELSE
	BEGIN

		UPDATE [dbo].[Menu] 
				SET
				//campos....
	END


Sim, mas nesse caso eu teria de ir registro a registro fazendo isso. Não há uma maneira de fazer automatico?
Responder