1
我箍你可以帮助我。 我在Visual Studio 2013 SDDT项目的Schemacomparetool中使用Skriptgeneration。我的问题是我需要更新一个非空的表。visual studio 2013中的ssdt项目 - 为非空表部署alterscript
的Schemacompartool使这个:
/*
The type for column Bundesland in table [dbo].[Arbeitsfreiertag] is currently VARCHAR (50) NULL but is being changed to BIGINT NULL. Data loss could occur.
*/
IF EXISTS (select top 1 1 from [dbo].[Arbeitsfreiertag])
RAISERROR (N'Rows were detected. The schema update is terminating because data loss might occur.', 16, 127) WITH NOWAIT
GO
...
PRINT N'Altering [dbo].[Arbeitsfreiertag]...';
GO
ALTER TABLE [dbo].[Arbeitsfreiertag] ALTER COLUMN [Bundesland] BIGINT NULL;
我还需要改变skript像枭雄Studio设计的变化:
/* To prevent any potential data loss issues, you should review this script in detail before running it outside the context of the database designer.*/
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_Arbeitsfreiertag
(
ID bigint NOT NULL,
Bundesland bigint NULL,
Name varchar(50) NOT NULL,
ArbeitsfreiertagTyp bigint NOT NULL,
Beginn datetime NOT NULL,
Beschreibung varchar(200) NULL,
Ende datetime NULL,
Land bigint NOT NULL,
Wiederholend int NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_Arbeitsfreiertag SET (LOCK_ESCALATION = TABLE)
GO
IF EXISTS(SELECT * FROM dbo.Arbeitsfreiertag)
EXEC('INSERT INTO dbo.Tmp_Arbeitsfreiertag (ID, Bundesland, Name, ArbeitsfreiertagTyp, Beginn, Beschreibung, Ende, Land, Wiederholend)
SELECT ID, CONVERT(bigint, Bundesland), Name, ArbeitsfreiertagTyp, Beginn, Beschreibung, Ende, Land, Wiederholend FROM dbo.Arbeitsfreiertag WITH (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.Arbeitsfreiertag
GO
EXECUTE sp_rename N'dbo.Tmp_Arbeitsfreiertag', N'Arbeitsfreiertag', 'OBJECT'
GO
ALTER TABLE dbo.Arbeitsfreiertag ADD CONSTRAINT
PK_Arbeitsfreiertag PRIMARY KEY CLUSTERED
(
ID
) WITH(STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
COMMIT
我需要一个选项来设置这ShemaCompartool。
我希望你能理解我的问题。
感谢斯特芬