sql-server-2008 - 如何在 sql server 2008 中获得没有约束的表列?

标签 sql-server-2008 tsql

我正在根据以下查询创建与每个主表关联的历史表

SELECT TOP 0 * INTO HISTORY_TABLE FROM MASTER_TABLE

此查询创建一个名为 HISTORY_TABLE 的空表由与 MASTER_TABLE 中的列相似的列组成但约束应用于 MASTER_TABLE .

那么他们有什么方法可以不受限制地获取列吗?

最佳答案

这可能不是一个好主意,但这可以满足您的需求..

//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

我希望这有帮助。

关于sql-server-2008 - 如何在 sql server 2008 中获得没有约束的表列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19853112/

相关文章:

sql - 申报日期与选定日期不匹配

tsql - 在T-SQL中使用DATEDIFF

sql-server - 使用 MSSQL 从 varchar 中删除第一个前导 0

sql-server-2008 - 在哪里使用 ROWLOCK、READPAST 和 CTE、子查询和更新?

sql-server - 如何检查 SQL 表是否被锁定以供查询?

sql - 从 SQL Server 连接获取最大值

sql-server-2008 - 在 F# 中,如何使用 Type Provider 访问 Sql Server Geography 数据类型?

java - 使用 JAVA 查询 SQL - 没有任何反应

sql - 事务 SQL : How do I tokenize a string?

sql - 如何连接每个组的某一列中的所有字符串