1. 程式人生 > >SQLSERVER儲存過程查詢資料表中某列存在空值

SQLSERVER儲存過程查詢資料表中某列存在空值

CREATE PROCEDURE [dbo].[PRO_CHK_COLUMNS_VALUES]
	-- Add the parameters for the stored procedure here
	 @TableName nvarchar(50) ,
	 @column_name  nvarchar(50) OUTPUT
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	-- Declare the return variable here
	DECLARE @list_column_name nvarchar(50)
	DECLARE @sql nvarchar(1000)
  DECLARE @count int

  declare cur cursor for --定義遊標		
    select name from sys.columns  where object_id=OBJECT_ID(''
[email protected]
+'') open cur--開啟遊標 fetch next from cur into @list_column_name --把提取操作的列資料放到區域性變數中 while(@@fetch_status=0) --遊標讀取下一條資料是否成功 begin SET @sql='select @count = COUNT(1) from '[email protected] +' where '[email protected]_column_name +' is null ' exec sp_executesql @sql,N'@count nvarchar(50) out ',@count out if @count > 0 begin SELECT @
[email protected]
_column_name break end fetch next from cur into @list_column_name --讀取下一條資料記錄放到區域性變數中,變數的數目必須與遊標選擇列表中的列的數目一致 end close cur--關閉遊標 deallocate cur--刪除遊標 END

相關推薦

SQLSERVER儲存過程查詢資料存在

CREATE PROCEDURE [dbo].[PRO_CHK_COLUMNS_VALUES] -- Add the parameters for the stored procedure here @TableName nvarchar(50) , @colum

AE獲取資料欄位唯一

{ 9              // 得到IFeatureCursor遊標 10             IFeatureCursor pCursor = pFeatureClass.Search( null , false );11 12              // coClass物件例項生成 13

Sql Server儲存過程從一個抓取資料填充到另一張

  set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author:  <alex,,Name> -- Create

mysql用儲存過程將一個資料跟新到另一個

這兩天學習mysql遊標的使用 就做了一個小練習題目 很簡單但是可以鍛鍊一下mysql遊標的使用方法 將friend1表中的資料更新到user-fri friend1 需要更新的表 user_fri 儲存過程如下 BEGIN DECLARE userid int;

mysql使用儲存過程將一個資料匯入另一個

儲存過程 本人也是第一次使用儲存過程,中間遇到了很多坑,在此記錄一下,希望能幫助使用的人少踩點坑。。 先說一下我使用儲存過程的需要,其實需求很簡單就是把一個表中的資料匯入一個新的表中,並且刪除原有表中的資料,說白了就是一個數據的備份 我是使用navicat

sqlserver 查詢資料每個類別最新的一條記錄

本文此處所規定的類別為省份ID,原始表如下圖所示: 所使用SQL語句為: select a.* from tbl_MaterialPice a,(select province_ID,max(

解決 mysql 儲存過程查詢資料方式是變數拼接名的寫法

需求: 用儲存過程查詢動態表名的資料 遇到問題: 查詢語句 from後面不能直接用引數查詢 MYSQL不支援直接使用變數做表名,會把引數名當做表名查詢,報錯 解決方法: 把查詢語句和變數通過concat連線付給變數。通過執行變數來執行此語句 sql程式碼:

sqlserver儲存過程實現資料批量刪除--分割字串實現

寫的儲存過程,接收的引數的一個字串,通過分割字串從而實現批量刪除。 IF (@operation = 'delete') BEGIN DECLARE @temp nvarchar(200) DECLARE @splitchar nvarchar(1) SET

sqlServer儲存過程查詢語句

select a.name,a.[type],b.[definition] from sys.all_objects a,sys.sql_modules b where a.is_ms_shipped=0 and a.object_id = b.object_i

SQLServer儲存過程自制資料字典

相信很多小夥伴都對【資料字典】很頭疼。 小編剛入職的時候,老大丟一個專案過來,就一個設計文件,資料字典木有,欄位說明木有, 全部都需要靠“聯絡上下文”來猜。所以小夥伴門一定要養成說明欄位的習慣哦。 說明欄位後我們無需特意建立資料字典,直接建立一個儲存過程就可以查詢欄位意義了。 儲存過程建立如下,小夥伴

SQLSERVER儲存過程基本語法(

五、遊標 declare @ID int declare @Oid int declare @Login varchar ( 50) --定義一個遊標 declare user_cur cursor for select ID, Oid,[Login] from ST_Us

dataset獲取其中一個放到List

//獲取 dataset,後面的方法為自己所寫,請根據實情自己填寫 DataSet dsrows = WMFEntityManager.Instance.GetEntityInfoByPKLite2("admin", "im_group", "is_del", "1", "owner", "

PostgreSQL設定自增或迴圈

  在postgresql中,設定已存在的某列(num)值自增,可以用以下方法: //將表tb按name排序,利用row_number() over()查詢序號並將該列命名為rownum,建立新表t

tabletextarea判斷輸入判斷

        function checkinput() {            var tb = document.getElementById("tba");            var ret = true;            for (var i = 0; i < tb.rows.le

sqlserver儲存過程利用遊標遍歷結果集簡單示例及查詢資料庫時間

本例項用的是sqlserver2005   在儲存過程中遍歷結果,和查詢資料庫中所有 儲存過程名稱 加以處理以文字形式輸出 原始碼: drop procedure findName create procedure findName--建立一個名為findName的儲存過

SQL Server : 是否存在;欄位是否存在;儲存過程是否存在;索引是否存在;

table_name --表名field_name --欄位名一、表是否存在:--如果不存在表,那麼建立IF OBJECT_ID('table_name') IS NULL BEGIN      CREATE TABLE table_name([field_name] [UN

SqlServer資料字典替換某個欄位的

base_CompanyType為資料字典表,有ID和CompanyType兩列,如IDCompanyType1監理單位2勘察單位base_company_info 為替換目標表,companytypeid列可能有多個的CompanyType組合,用“,”隔開,如“監理單位,

sqlserver 儲存過程使用臨時到底會不會導致重編譯

曾經在網路上看到過,SqlServer的儲存過程中使用臨時表,會導致執行計劃無法重用, 執行時候會導致重編譯的這麼一個說法,自己私底下去做測試的時候,根據profile的跟蹤結果, 如果不是統計資訊變更導致導致的重編譯,單單是使用臨時表,並不會導致重編譯, 但是對於

資料庫查詢2張兩個欄位不同的資料

例:  表a    欄位  as  aid  at ao 表b    欄位  bs  bid  bf   bg   bh     其中表a中欄位as 的資料是    1    5    7   2   9   90   87    23 其中表b中欄位bs  的資料是  

Oracle用定時任務儲存過程資料到歷史,提高查詢速度

一、定義儲存過程 CREATE OR REPLACE PROCEDURE Sync_INFO_HISTORY IS BEGIN insert into depart_passenger_info