在 MS SQL Server 中删除表
-- 说明:
-- 1. 要删除表 table_name, 须先判断该表是否正被数据库中其它表所引用.
-- 2. 如果未被引用, 可直接 DROP TABLE table_name; 否则必须先删除引用表的约束, 再 DROP TABLE table_name.
-- 3. 另外, table_name 是否正引用其它表的情况无须考虑.
-- 创建主表
CREATE TABLE tParent
(
tParent_Col1 int NOT NULL CONSTRAINT pkParent PRIMARY KEY,
tParent_Col2 nvarchar(50) NOT NULL CONSTRAINT uktParent UNIQUE
)
INSERT INTO tParent VALUES (1, N'ParentRecord1')
INSERT INTO tParent VALUES (2, N'ParentRecord2')
INSERT INTO tParent VALUES (3, N'ParentRecord3')
SELECT * from tParent
-- ===========================================
-- 创建从表 1
CREATE TABLE tChild1
(
tChild1_Col1 int NOT NULL CONSTRAINT fkChild1Parent FOREIGN KEY REFERENCES tParent (tParent_Col1),
tChild1_Col2 nvarchar(50) NOT NULL
)
INSERT INTO tChild1 VALUES (2, N'Child1Record1')
INSERT INTO tChild1 VALUES (3, N'Child1Record2')
INSERT INTO tChild1 VALUES (1, N'Child1Record3')
INSERT INTO tChild1 VALUES (2, N'Child1Record4')
SELECT * from tChild1
-- ===========================================
-- 创建从表 2
CREATE TABLE tChild2
(
tChild2_Col1 int NOT NULL,
tChild2_Col2 nvarchar(50) NOT NULL CONSTRAINT fkChild2Parent FOREIGN KEY REFERENCES tParent (tParent_Col2)
)
INSERT INTO tChild2 VALUES (11, N'ParentRecord2')
INSERT INTO tChild2 VALUES (22, N'ParentRecord1')
INSERT INTO tChild2 VALUES (33, N'ParentRecord3')
INSERT INTO tChild2 VALUES (44, N'ParentRecord3')
SELECT * from tChild2
-- ===========================================
-- 生成删除从表外键约束的 T-SQL 语句
-- 1. MS SQL Server 2000
DECLARE @stmt nvarchar(4000)
SELECT @stmt = ISNULL(@stmt + CHAR(13) + CHAR(10), '')
+ 'ALTER TABLE ' + OBJECT_NAME(fkeyid)
+ ' DROP CONSTRAINT ' + OBJECT_NAME(constid)
from sysforeignkeys
WHERE rkeyid = OBJECT_ID(N'tParent', N'U')
-- --
相关文档:
1)
#pragma warning(disable:4146)
#import "C:\Program Files\Common Files\System\ADO\msado15.dll"
named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")
#pragma warning(default:4146)
using namespace ADODB;
2)
#pragma warning(disable:4146) ......
select * into destTbl from srcTbl
insert into destTbl(fld1, fld2) select fld1, 5 from srcTbl
以上两句都是将 srcTbl 的数据插入到 destTbl,但两句又有区别的:
第一句(select into from)要求目标表(destTbl)不存在,因为在插入时会自动创建。
第二句(insert into select from)要求目标表(dest ......
一般的公司通常会在他们的信息系统架构中引入多种数据库平台,同时引入三到四种不同的RDBMS解决方案的中大型公司也并不少见,当然这些公司里面的DBA们通常也需要同时拥有管理多种不同平台的技能了。
只在一种平台上展开工作的数据库专家们也通常会期待着在他们的下一份工作中能学到点不一样的东西,那些有勇气的人们则愿意 ......
SQL Server DATEDIFF() 函数
定义和用法
DATEDIFF() 函数返回两个日期之间的天数。
语法
DATEDIFF(datepart,startdate,enddate)
startdate 和 enddate 参数是合法的日期表达式。
datepart 参数可以是下列的值:
datepart缩写
年
yy, yyyy
季度
qq, q
月
mm, m
年中的日
dy, y
日
dd, d
周
wk, ww
星期
......