宣告變數
DECLARE @id1 int -- 宣告變數
DECLARE @id2 int = 438; -- 宣告變數並賦值
在 SQL Server 中的變數名稱一定要以小老鼠(at @)符號開頭,後面加上變數資料類型,也可以宣告時就直接賦值。
常用的資料型態有: int, bigint, datetime, nvarchar, cursor
需要注意的是變數只在同一個批次(batch)中有效,也就是在一次執行中才有效。
變數賦值
除了在變數宣告的當下賦值外,還有以下方式:SET
DECLARE @USER_NAME NVARCHAR(200)
SET @USER_NAME = 'Ruyut'
PRINT @USER_NAME
SELECT
DECLARE @USER_ID NVARCHAR(450)
SELECT @USER_ID = Id from Users where UserName = 'Ruyut'
PRINT @USER_ID
SELECT 還可以一次替多個變數賦值:
DECLARE @USER_ID NVARCHAR(450)
DECLARE @EMAIL NVARCHAR(450)
SELECT @USER_ID = Id, @EMAIL = Email from Users where UserName = 'Ruyut'
PRINT 'USER_ID: ' + @USER_ID + ' EMAIL: ' + @EMAIL
使用變數動態產生 SQL 並執行
變數也很常被用來動態執行 SQL 語法,下面是一個動態組合出 SQL 語法並執行的簡單範例:
DECLARE @TABLE_NAME NVARCHAR(450)
SET @TABLE_NAME = 'MyTable'
DECLARE @SQL NVARCHAR(450)
SET @SQL = 'CREATE TABLE ' + @TABLE_NAME + ' (ID INT, Name NVARCHAR(50))'
EXEC(@SQL)
參考資料:
Microsoft.Learn - Data types (Transact-SQL)
Microsoft.Learn - DECLARE @local_variable (Transact-SQL)
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com