• Sqlserver基础


    变量

    • 变量声明
    DECLARE @age;
    
    • 变量赋值
    SET @age=2;
    

    条件表达式

    IF @age>1
    BEGIN
        ......
    END
    ELSE
    BEGIN
        ......
    END
    

    常用内置函数

    • GETDATE() 获取当前时间
    • NEWID() 获取随机编号
    • EXISTS(~)判断语句是否有结果 有返回true 没有返回false 与之对应的是NOT EXISTS
    • ......

    存储过程

    CREATE PROCEDURE [dbo].[PROCNAME](
    @userId      NVARCHAR(50),
    @resultValue NVARCHAR(100) OUTPUT) AS  --参数列表
    DECLARE
    @syncDateTime NVARCHAR(36), --变量列表
    @rowQty NUMERIC,
    @pBomPkgId NVARCHAR(50);
      
    BEGIN
    
    	SET XACT_ABORT ON;
    	DECLARE @errorMessage NVARCHAR(4000), @trancount int,@logMessage NVARCHAR(2000);
    	SET @trancount = @@TRANCOUNT;
        
    	BEGIN TRY
    		
    		IF @trancount = 0 
    			BEGIN TRAN; --开启事务
    		
    		DECLARE recTask CURSOR LOCAL FOR    --创建游标
    		SELECT ID FROM TABLENAME
    
    		OPEN recTask;   --开启游标
    		FETCH NEXT FROM recTask INTO @Id    --指到第一项
    		WHILE(@@FETCH_STATUS=0)
    		BEGIN
    			SET @logMessage='';
    			
    			EXEC PROCNAME2 @Id,@userId,@resultValue out;     --调用存储过程
    			IF @resultValue!='Y'
    			BEGIN
    				SET @logMessage='XXX';
    			END
    			
    			FETCH NEXT FROM recTask INTO @Id;   --游标下移
    		END;
    		CLOSE recTask;  --关闭游标
    		DEALLOCATE recTask; --销毁游标
    		
    		SET @resultValue= 'Y';
    		IF @trancount = 0 
    			COMMIT TRAN;    --提交事务
    	END TRY
    	BEGIN CATCH
    		SET @errorMessage = ERROR_MESSAGE();    --获取错误信息
    		
    		IF @trancount = 0 
    			ROLLBACK TRAN;  --回滚事务
    		RAISERROR(@errorMessage, 16, 1);    --抛出异常
    	END CATCH;
    END;
    

    作业

    • 开启sqlserver代理
    • 创建作业
    • 设置计划 定期执行sql

    链接服务器

    • 创建链接服务器可以读取远程服务器上的数据库内容
    • 创建链接服务器后的操作(Oracle)
    --查询
    SELECT * FROM OPENQUERY (PLM, 'SELECT * FROM TableName')
    
    --更新
    UPDATE OPENQUERY(PLM, 'SELECT * FROM TableName') SET NAME='Rose' WHERE ID=@Id;
    
    --插入
    INSERT INTO OPENQUERY(PLM, 'SELECT * FROM TableName') (ID,NAME) VALUES(@id,@Name);
    
  • 相关阅读:
    线程数量与并行应用性能相关性的测试
    redis命令学习
    shell获取日期(昨天,明天,上月,下月)
    shell获取文件行数
    redis的备份和恢复
    redis使用Java学习
    kafka的一些常用命令
    查看kafka的group.id
    vim搜索后跳到下(上)一个
    redis批量执行
  • 原文地址:https://www.cnblogs.com/hklol/p/12674276.html
Copyright © 2020-2023  润新知