create view prl as SELECT Parent_ID, Item_ID, Item_Name FROM Subject1 WHERE Parent_ID = 8 UNION ALL SELECT Parent_ID, Item_ID, Item_Name FROM Subject2 WHERE Parent_ID = 8 go调用: SELECT DISTINCT Parent_ID, Item_ID, Item_Name FROM RPL ORDER BY Parent_ID, Item_ID, Item_Name
注意,不要在企业管理器里做,直接到查询分析器里执行: create view prl as SELECT Parent_ID, Item_ID, Item_Name FROM Subject1 WHERE Parent_ID = 8 UNION ALL SELECT Parent_ID, Item_ID, Item_Name FROM Subject2 WHERE Parent_ID = 8 go
注意,不要在企业管理器里做,直接到查询分析器里执行: create view prl as SELECT Parent_ID, Item_ID, Item_Name FROM Subject1 WHERE Parent_ID = 8 UNION ALL SELECT Parent_ID, Item_ID, Item_Name FROM Subject2 WHERE Parent_ID = 8 go
那你不用视图呢?SELECT DISTINCT Parent_ID, Item_ID, Item_Name FROM (SELECT Parent_ID, Item_ID, Item_Name FROM Subject1 WHERE Parent_ID = 8 UNION ALL SELECT Parent_ID, Item_ID, Item_Name FROM Subject2 WHERE Parent_ID = 8 ) RPL ORDER BY Parent_ID, Item_ID, Item_Name
是啊,用view程序就要改了,但我又不能用嵌套的sql
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ锁定查询中使用的所有数据以防止其他用户更新数据,但是其他用户可以将新的幻像行插入数据集,且幻像行包括在当前事务的后续读取中。因为并发低于默认隔离级别,所以应只在必要时才使用该选项。
select * from table with (..) SELECT 语句中“加锁选项”的功能说明 SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果。 本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明。 功能说明: NOLOCK(不加锁) 此选项被选中时,SQL Server 在读取或修改数据时不加任何锁。 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”。
HOLDLOCK(保持锁) 此选项被选中时,SQL Server 会将此共享锁保持至整个事务结束,而不会在途中释放。
UPDLOCK(修改锁) 此选项被选中时,SQL Server 在读取数据时使用修改锁来代替共享锁,并将此锁保持至整个事务或命令结束。使用此选项能够保证多个进程能同时读取数据但只有该进程能修改数据。
TABLOCK(表锁) 此选项被选中时,SQL Server 将在整个表上置共享锁直至该命令结束。 这个选项保证其他进程只能读取而不能修改数据。
PAGLOCK(页锁) 此选项为默认选项, 当被选中时,SQL Server 使用共享页锁。
TABLOCKX(排它表锁) 此选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。
使用这些选项将使系统忽略原先在SET语句设定的事务隔离级别(Transaction Isolation Level)。 请查阅SQL Server 联机手册获取更多信息。
SELECT Parent_ID, Item_ID, Item_Name
FROM Subject1
WHERE Parent_ID = 8
UNION ALL
SELECT Parent_ID, Item_ID, Item_Name
FROM Subject2
WHERE Parent_ID = 8
go调用:
SELECT DISTINCT Parent_ID, Item_ID, Item_Name
FROM RPL
ORDER BY Parent_ID, Item_ID, Item_Name
create view prl as
SELECT Parent_ID, Item_ID, Item_Name
FROM Subject1
WHERE Parent_ID = 8
UNION ALL
SELECT Parent_ID, Item_ID, Item_Name
FROM Subject2
WHERE Parent_ID = 8
go
create view prl as
SELECT Parent_ID, Item_ID, Item_Name
FROM Subject1
WHERE Parent_ID = 8
UNION ALL
SELECT Parent_ID, Item_ID, Item_Name
FROM Subject2
WHERE Parent_ID = 8
go
[WITH <formula_specification>]
[, <formula_specification>]
SELECT [<axis_specification>
[, <axis_specification>...]]
FROM [<cube_specification>]
[WHERE [<slicer_specification>]]
的说明,说可以用于实现缓存的view,但我试了不行,还有谁用过?
FROM (SELECT Parent_ID, Item_ID, Item_Name
FROM Subject1
WHERE Parent_ID = 8
UNION ALL
SELECT Parent_ID, Item_ID, Item_Name
FROM Subject2
WHERE Parent_ID = 8
)
RPL
ORDER BY Parent_ID, Item_ID, Item_Name
SELECT 语句中“加锁选项”的功能说明
SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果。 本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明。
功能说明:
NOLOCK(不加锁)
此选项被选中时,SQL Server 在读取或修改数据时不加任何锁。 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”。
HOLDLOCK(保持锁)
此选项被选中时,SQL Server 会将此共享锁保持至整个事务结束,而不会在途中释放。
UPDLOCK(修改锁)
此选项被选中时,SQL Server 在读取数据时使用修改锁来代替共享锁,并将此锁保持至整个事务或命令结束。使用此选项能够保证多个进程能同时读取数据但只有该进程能修改数据。
TABLOCK(表锁)
此选项被选中时,SQL Server 将在整个表上置共享锁直至该命令结束。 这个选项保证其他进程只能读取而不能修改数据。
PAGLOCK(页锁)
此选项为默认选项, 当被选中时,SQL Server 使用共享页锁。
TABLOCKX(排它表锁)
此选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。
使用这些选项将使系统忽略原先在SET语句设定的事务隔离级别(Transaction Isolation Level)。 请查阅SQL Server 联机手册获取更多信息。