基礎建設
-- 在 Person 和 dbo 兩個 Schema 內,建立 SchemaDemo Table
-- HumanResources Schema 內,則是故意不建立 SchemaDemo Table
USE [AdventureWorks2012]
GO
IF OBJECT_ID('Person.SchemaDemo') IS NOT NULL
DROP TABLE [Person].[SchemaDemo]
CREATE TABLE [Person].[SchemaDemo] (descript nchar(100))
INSERT INTO [Person].[SchemaDemo] (descript)
VALUES(N'Schema 為 Person 的 SchemaDemo Table')
GO
IF OBJECT_ID('dbo.SchemaDemo') IS NOT NULL
DROP TABLE [dbo].[SchemaDemo]
CREATE TABLE [dbo].[SchemaDemo] (descript nchar(100))
INSERT INTO [dbo].[SchemaDemo] (descript)
VALUES(N'Schema 為 dbo 的 SchemaDemo Table')
GO
-- 建立測試 UserPerson 和 UserHumanResources,故意建立跟預設 Schema 同名的 User,方便辨識
USE [master]
GO
IF EXISTS (SELECT 1 FROM sys.sql_logins WHERE name = 'UserPerson')
DROP LOGIN UserPerson
IF EXISTS (SELECT 1 FROM sys.sql_logins WHERE name = 'UserHumanResources')
DROP LOGIN UserHumanResources
CREATE LOGIN [UserPerson]
WITH PASSWORD = N'P@ssw0rd' , DEFAULT_DATABASE = [AdventureWorks2012]
CREATE LOGIN [UserHumanResources]
WITH PASSWORD = N'P@ssw0rd' , DEFAULT_DATABASE = [AdventureWorks2012]
USE [AdventureWorks2012]
GO
IF EXISTS(SELECT 1 FROM sys.database_principals WHERE name = 'UserPerson')
DROP USER UserPerson
CREATE USER [UserPerson] FOR LOGIN [UserPerson] WITH DEFAULT_SCHEMA = Person;
GO
IF EXISTS(SELECT 1 FROM sys.database_principals WHERE name = 'UserHumanResources')
DROP USER UserHumanResources
CREATE USER [UserHumanResources] FOR LOGIN [UserHumanResources] WITH DEFAULT_SCHEMA = HumanResources;
GO
-- 授予存取 Table 權限
GRANT SELECT ON [Person].[SchemaDemo] TO [UserPerson]
GRANT SELECT ON [dbo].[SchemaDemo] TO [UserPerson]
GRANT SELECT ON [dbo].[SchemaDemo] TO [UserHumanResources]
GO
-- 確認使用者
SELECT
Name,
type_desc,
default_database_name
FROM sys.sql_logins
WHERE name IN ('UserPerson','UserHumanResources')
-- 確認 User 的 預設 Schema
SELECT
name,
type_desc,
default_schema_name
FROM sys.database_principals
WHERE default_schema_name IS NOT NULL
![[SQL] Schema-1](https://farm4.staticflickr.com/3906/14810482829_ed3f555581_z.jpg)
![[ASP.NET] 根據條件變化顏色](https://farm6.staticflickr.com/5569/14779239827_8fb6e2879e_o.jpg)

![[LINQ] SUM](https://farm6.staticflickr.com/5589/14965208855_1d100af509_o.jpg)
![[C#] IP address-1](https://farm6.staticflickr.com/5489/14586567076_5ca4919d8f_o.jpg)
![[LINQ] 指定轉換無效-1](https://farm4.staticflickr.com/3913/14882342705_e4d381097f_z.jpg)
![[LINQ] 指定轉換無效-2](https://farm4.staticflickr.com/3899/14882342865_0f2f3b71c4_o.jpg)
![[C#] DataGridView 的多選](https://farm6.staticflickr.com/5562/14833669605_4b8ddc09b4_o.jpg)
![[C#] 計算年齡](https://farm3.staticflickr.com/2928/14331359758_8043b98972_o.jpg)
![[C#] ListBox 內新增 Item](https://farm3.staticflickr.com/2907/14795918974_fd77d0f4d4_o.jpg)
![[VS] 建立 Class Property-1](https://farm3.staticflickr.com/2927/14553580277_fa19e746a0_z.jpg)
![[VS] 建立 Class Property-2](https://farm6.staticflickr.com/5556/14759900233_1094ed068a_z.jpg)
![[C#] Enum 的 String 值-1](https://farm6.staticflickr.com/5575/14602226682_c2c3dbd2e7_o.jpg)
![[C#] 物件初始化](https://farm3.staticflickr.com/2929/14815268472_5592950541_o.jpg)
![[VS] 尋找命名空間-1](https://farm3.staticflickr.com/2901/14543738319_f620218bde_z.jpg)
![[VS] 尋找命名空間-2](https://farm6.staticflickr.com/5585/14730090562_69dea2b78c_o.jpg)
![[VS] 尋找命名空間-3](https://farm3.staticflickr.com/2906/14727197411_c905515fe9_z.jpg)