亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將動態SQL的結果轉換為sql-server的變量

將動態SQL的結果轉換為sql-server的變量

繁華開滿天機 2019-12-11 13:09:42
在存儲過程中執行動態SQL,如下所示:DECLARE @sqlCommand nvarchar(1000)DECLARE @city varchar(75)SET @city = 'London'SET @sqlCommand = 'SELECT COUNT(*) FROM customers WHERE City = @city'EXECUTE sp_executesql @sqlCommand, N'@city nvarchar(75)', @city = @city如何在SP中使用count(*)列值作為返回值?
查看完整描述

3 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

DECLARE @sqlCommand nvarchar(1000)

DECLARE @city varchar(75)

declare @counts int

SET @city = 'New York'

SET @sqlCommand = 'SELECT @cnt=COUNT(*) FROM customers WHERE City = @city'

EXECUTE sp_executesql @sqlCommand, N'@city nvarchar(75),@cnt int OUTPUT', @city = @city, @cnt=@counts OUTPUT

select @counts as Counts



查看完整回答
反對 回復 2019-12-12
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

您可能已經嘗試過了,但是您的規格是否可以執行此操作?


DECLARE @city varchar(75)

DECLARE @count INT

SET @city = 'London'

SELECT @count = COUNT(*) FROM customers WHERE City = @city



查看完整回答
反對 回復 2019-12-12
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

動態版本


    ALTER PROCEDURE [dbo].[ReseedTableIdentityCol](@p_table varchar(max))-- RETURNS int

    AS

    BEGIN

        -- Declare the return variable here

       DECLARE @sqlCommand nvarchar(1000)

       DECLARE @maxVal INT

       set @sqlCommand = 'SELECT @maxVal = ISNULL(max(ID),0)+1 from '+@p_table

       EXECUTE sp_executesql @sqlCommand, N'@maxVal int OUTPUT',@maxVal=@maxVal OUTPUT

       DBCC CHECKIDENT(@p_table, RESEED, @maxVal)

    END



exec dbo.ReseedTableIdentityCol @p_table='Junk'



查看完整回答
反對 回復 2019-12-12
  • 3 回答
  • 0 關注
  • 589 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號