動態SQL語句文法

來源:互聯網
上載者:User

--動態語句文法
/******************************************************************************************************************************************************
動態語句文法:exec/sp_executesql文法

整理人:中國風(Roy)

日期:2008.06.06
******************************************************************************************************************************************************/
--動態語句文法:

--方法1查詢表改為動態
select * from sysobjects
exec('select ID,Name from sysobjects')
exec sp_executesql N'select ID,Name from sysobjects'--多了一個N為unicode

--方法2:欄位名,表名,資料庫名之類作為變數時,用動態SQL
declare @FName varchar(20)
set @FName='ID'
exec('select '+@FName+' from sysobjects where '+@FName+'=5' )

declare @s varchar(1000)
set @s=N'select '+@FName+' from sysobjects where '+@FName+'=5'
exec sp_executesql @s--會報錯

declare @s nvarchar(1000)--改為nvarchar
set @s=N'select '+@FName+' from sysobjects where '+@FName+'=5'
exec sp_executesql @s--成功

--方法3:輸入參數

declare @i int,@s nvarchar(1000)
set @i=5
exec('select ID,Name from sysobjects where ID='+@i)

set @s='select ID,Name from sysobjects where ID=@i'
exec sp_executesql @s,N'@i int',@i--此處輸入參數要加上N

--方法4:輸出參數

declare @i int,@s nvarchar(1000)
set @s='select @i=count(1) from sysobjects'

--用exec
exec('declare @i int '+@s+' select @i')--把整個語句用字串加起來執行

--用sp_executesql
exec sp_executesql @s,N'@i int output',@i output--此處輸出參數要加上N
select @i

--方法5:輸入輸出

--用sp_executesql
declare @i int,@con int,@s nvarchar(1000)
set @i=5
select @s='select @con=count(1) from sysobjects where ID>@i'
exec sp_executesql @s,N'@con int output,@i int',@con output ,@i
select @con

--用exec
declare @i int,@s nvarchar(1000)
set @i=5
select @s='declare @con int select @con=count(1) from sysobjects where ID>'+rtrim(@i)+' select @con'
exec(@s)

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/htl258/archive/2009/04/24/4106390.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.