您可以使用CTE輕鬆地在視圖中僞造一個變量。您可以在您的SQL Server版本中測試運行它。
CREATE VIEW vwImportant_Users AS
WITH params AS (
SELECT
varType='%Admin%',
varMinStatus=1)
SELECT status, name
FROM sys.sysusers, params
WHERE status > varMinStatus OR name LIKE varType
SELECT * FROM vwImportant_Users
產生輸出:
status name
12 dbo
0 db_accessadmin
0 db_securityadmin
0 db_ddladmin
還通過JOIN
WITH params AS (SELECT varType='%Admin%', varMinStatus=1)
SELECT status, name
FROM sys.sysusers INNER JOIN params ON 1=1
WHERE status > varMinStatus OR name LIKE varType
還通過CROSS APPLY
WITH params AS (SELECT varType='%Admin%', varMinStatus=1)
SELECT status, name
FROM sys.sysusers CROSS APPLY params
WHERE status > varMinStatus OR name LIKE varType
您可以編寫一個函數來設置一個變量,並將其返回。使用視圖不是正確的方法。 –
還應該注意的是,如果您的子查詢返回多個值,您將收到另一個錯誤。 – BJones
感謝您的回覆,我會把它作爲一個功能,然後 – mb1987