第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在動(dòng)態(tài)SQL查詢中設(shè)置表名?

如何在動(dòng)態(tài)SQL查詢中設(shè)置表名?

月關(guān)寶盒 2019-11-19 14:37:12
我想在動(dòng)態(tài)SQL查詢中設(shè)置表名。我成功嘗試了參數(shù),如下所示:/* Using sp_executesql *//* Build and Execute a Transact-SQL String with a single parameter value Using sp_executesql Command *//* Variable Declaration */DECLARE @EmpID AS SMALLINTDECLARE @SQLQuery AS NVARCHAR(500)DECLARE @ParameterDefinition AS NVARCHAR(100)/* set the parameter value */SET @EmpID = 1001/* Build Transact-SQL String by including the parameter */SET @SQLQuery = 'SELECT * FROM tblEmployees WHERE EmployeeID = @EmpID' /* Specify Parameter Format */SET @ParameterDefinition =  '@EmpID SMALLINT'/* Execute Transact-SQL String */EXECUTE sp_executesql @SQLQuery, @ParameterDefinition, @EmpID現(xiàn)在,我想TABLE NAME動(dòng)態(tài)地使用參數(shù),但是我做不到。請指導(dǎo)我。
查看完整描述

3 回答

?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊

表名不能作為參數(shù)提供,因此您必須像這樣手動(dòng)構(gòu)建SQL字符串:


SET @SQLQuery = 'SELECT * FROM ' + @TableName + ' WHERE EmployeeID = @EmpID' 

但是,請確保您的應(yīng)用程序不允許用戶直接輸入的值@TableName,因?yàn)檫@會(huì)使您的查詢?nèi)菀资艿絊QL注入的影響。有關(guān)此問題的一種可能的解決方案


查看完整回答
反對 回復(fù) 2019-11-19
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊

為了防止SQL注入,我通常嘗試盡可能使用函數(shù)。在這種情況下,您可以執(zhí)行以下操作:


...

SET @TableName = '<[db].><[schema].>tblEmployees'

SET @TableID   = OBJECT_ID(TableName) --won't resolve if malformed/injected.

...

SET @SQLQuery = 'SELECT * FROM ' + OBJECT_NAME(@TableID) + ' WHERE EmployeeID = @EmpID' 



查看完整回答
反對 回復(fù) 2019-11-19
?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊

嘗試這個(gè):


/* Variable Declaration */

DECLARE @EmpID AS SMALLINT

DECLARE @SQLQuery AS NVARCHAR(500)

DECLARE @ParameterDefinition AS NVARCHAR(100)

DECLARE @TableName AS NVARCHAR(100)

/* set the parameter value */

SET @EmpID = 1001

SET @TableName = 'tblEmployees'

/* Build Transact-SQL String by including the parameter */

SET @SQLQuery = 'SELECT * FROM ' + @TableName + ' WHERE EmployeeID = @EmpID' 

/* Specify Parameter Format */

SET @ParameterDefinition =  '@EmpID SMALLINT'

/* Execute Transact-SQL String */

EXECUTE sp_executesql @SQLQuery, @ParameterDefinition, @EmpID


查看完整回答
反對 回復(fù) 2019-11-19
  • 3 回答
  • 0 關(guān)注
  • 1049 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號