我正在根据以下查询
创建与每个主表关联的历史记录表SELECT TOP 0 * INTO HISTORY_TABLE FROM MASTER_TABLE
此查询创建一个名为HISTORY_TABLE
的空表,其中包含类似于MASTER_TABLE
中列的列,但具有应用于MASTER_TABLE
的约束。
他们可以通过任何方式获得没有约束的列吗?
答案 0 :(得分:0)
这可能不是一个好主意,但这可以做你想要的......
//This creates the table with constraints
SELECT TOP 0 * INTO HISTORY_TABLE FROM MASTER_TABLE
//This will drop all the constraints
DECLARE @database NVARCHAR(50)
DECLARE @table NVARCHAR(50)
DECLARE @sql NVARCHAR(255)
SET @database = 'databasename'
SET @table = 'HISTORY_TABLE'
WHILE EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE constraint_catalog=@database AND table_name=@table)
BEGIN
SELECT @sql = 'ALTER TABLE ' + @table + ' DROP CONSTRAINT ' + CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE constraint_catalog=@database AND table_name=@table
EXEC sp_executesql @sql
END
我希望这会有所帮助。
答案 1 :(得分:0)
这会为您提供一组包含一组干净的表格。
select top 0 * into #bounce from MASTER_TABLE
select * into HISTORY_TABLE from #bounce
但是他们很干净你需要定义PK,索引等等(但你可能需要在历史表上不同的那些......)