列名無效如何解決?
如何解決SQL SERVER 中列名無效
提示列名無效,說明查詢的表和字段不對應,即表中不存在查詢的列名。
sql:select * from tablename t where t.name='zhangdan';
解釋:如果上面tablename表中存在name字段,那麼就會有正常的查詢結果,如果沒有name字段,那麼就會報錯。可以通過‘select * from tablename t ’查詢下,確認字段後在添加查詢條件。
又遇到列名無效了,該怎麼處理
起了別名,列名無效 報錯信息:消息 207,級別 16,狀態 1,過程 pagination,第 34 行 列名 'select count(*) as Total from [' 無效。 CREATE PROCEDURE pagination @tblName varchar(255), -- 表名 @strGetFields varchar(1000) = '*', -- 需要返回的列 @fldName varchar(255)='', -- 排序的字段名 @PageSize int = 10, -- 頁尺寸 @PageIndex int = 1, -- 頁碼 @doCount bit = 0, -- 返回記錄總數, 非 0 值則返回 @OrderType bit = 0, -- 設置排序類型, 非 0 值則降序 @strWhere varchar(1500) = '' -- 查詢條件 (注意: 不要加 where)ASdeclare @strSQL varchar(5000) -- 主語句 declare @strTmp varchar(110) -- 臨時變量 declare @strOrder varchar(400) -- 排序類型 if @doCount != 0beginif @strWhere !='' set @strSQL = select count(*) as Total from [ + @tblName + ] where +@strWhere //錯誤行elseset @strSQL = select count(*) as Total from [ + @tblName + ]end--以上代碼的意思是如果@doCount傳遞過來的不是0,就執行總數統計。以下的所有代碼都是@doCount為0的情況elsebeginif @OrderType != 0beginset @strTmp = <(select min set @strOrder = order by [ + @fldName +] desc --如果@OrderType不是0,就執行降序,這句很重要!endelsebeginset @strTmp = (select max set @strOrder = order by [ + @fldName +] ascendif @PageIndex = 1beginif @strWhere != '' set @strSQL = select top + str(@PageSize) + +@strGetFields+ from [ + @tblName + ] where + @strWhere + + @strOrderelseset @strSQL = select top + str(@PageSize) + +@strGetFields+ from [+ @tblName + ] + @strOrder --如果是第一頁就執行以上代碼,這樣會加快執行速度endelsebegin--以下代碼賦予了@strSQL以真正執行的SQL代碼 set @strSQL = select top + str(@PageSize) + +......
寫了一個存儲過程,總是提示列名無效,怎樣解決呢?
update cwbackup.dbo.CBMtemp set inThreeYearsAgo = @inThreeYearsAgo,
inTwoYearsAgo = @inTwoYearsAgo,
inLastYear = @inLastYear,
outTreeYearsAgo = @outThreeYearsAgo,
outTwoYearsAgo = @outTwoYea伐sAgo,
outLastYear = @outLastYear;
你這段更新的CBMtemp表中有沒有你報錯的字段
Sql 出現列名無效,請問怎麼辦
不能這麼寫,改一下select * from (select *,ROW_NUMBER()OVER(order By item_id) as Row from T_ITEMS) as aaa where Row > 2這樣就行了
起了別名,列名無效,該如何解決麻煩告訴我
起了別名,列名無效
報錯信息:消息 207,級別 16,狀態 1,過程 pagination,第 34 行
列名 'select count(*) as Total from [' 無效。
CREATE PROCEDURE pagination
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) = '*', -- 需要返回的列
@fldName varchar(255)='', -- 排序的字段名
@PageSize int = 10, -- 頁尺寸
@PageIndex int = 1, -- 頁碼
@doCount bit = 0, -- 返回記錄總數, 非 0 值則返回
@OrderType bit = 0, -- 設置排序類型, 非 0 值則降序
@strWhere varchar(1500) = '' -- 查詢條件 (注意: 不要加 where)ASdeclare @strSQL varchar(5000) -- 主語句
declare @strTmp varchar(110) -- 臨時變量
declare @strOrder varchar(400) -- 排序類型
if @doCount != 0beginif @strWhere !=''
set @strSQL = select count(*) as Total from [ + @tblName + ] where +@strWhere //錯誤行elseset @strSQL = select count(*) as Total from [ + @tblName + ]end--以上代碼的意思是如果@doCount傳遞過來的不是0,就執行總數統計。以下的所有代碼都是@doCount為0的情況elsebeginif @OrderType != 0beginset @strTmp = <(select min
set @strOrder = order by [ + @fldName +] desc
--如果@OrderType不是0,就執行降序,這句很重要!endelsebeginset @strTmp = (select max
set @strOrder = order by [ + @fldName +] ascendif @PageIndex = 1beginif @strWhere != ''
set @strSQL = select top + str(@PageSize) + +@strGetFields+ from [ + @tblName + ] where + @strWhere + + @strOrderelseset @strSQL = select top + str(@PageSize) + +@strGetFields+ from [+ @tblName + ] + @strOrder
--如果是第一頁就執行以上代碼,這樣會加快執行速度endelsebegin--以下代碼賦予了@strSQL以真正執行的SQL代碼
set @strSQL = select top + str(@PageSize) + +@strGetFie......
怎樣解決列名cinvhelp無效
不能這麼寫,改一下
select * from (select *,ROW_NUMBER()OVER(order By item_id) as Row from T_ITEMS) as aaa where Row > 2
這樣就行了
SQL語句中,這樣為什麼出現列名無效
是運行T-SQL時說的麼?首先查看語句列名和你定義表的列名是否一致,如果一樣,查看你語句和表的列名是否順序一致(有可能表第二列式a,語句給寫成第三個)
在SQL Server中創建數據表後列名無效的問題
在SQL Server Management Studio中按如下所示操作試一下:
sql數據庫列名無效但可以執行是怎麼回事
你把語句拿到數據庫執行可以?
還是程序中?
新建的數據庫,提示列名無效,怎麼處理。。。。
所寫的列名並不存在於這個表結構裡面,看看打錯了哪個字母吧。