4、MSSQL T-SQL

一:变量

 DECLARE @I NVARCHAR(50),@J NVARCHAR(50);
 SET @I='TEST1';				--SET 只能为一个变量赋值
 SELECT @I='TEST2',@J='TEST3'	--SELECT 能为多个变量赋值

二:return(慎用)

用于存储过程、批处理或语句块无条件退出,不再执行return后的语句,
除非特别说明,否则所有存储返回0表示成功,非0表示失败!
当在存储过程中,return不能返回空值。

三:WAITFOR

 BEGIN
	-- WAITFOR TIME '17:00'		--今天17点在执行
	 WAITFOR  DELAY '00:00:05'	--延迟5s执行
	 SELECT * FROM dbo.TB_Form
 END

四:自定义错误

 BEGIN TRY
  --错误在11-20中可以被catch捕获异常
 END TRY
 BEGIN CATCH
 SELECT ERROR_MESSAGE()
 END CATCH


五:PRINT

PRINT '将消息打印'

六:SQL Server 中 EXEC 与 SP_EXECUTESQL

EXEC sp_executesql N'SELECT * FROM dbo.TB_Form' --执行sql

执行动态sql语句

 --定义SQL查询对应的表的编码	
SET @SQL=N'
DECLARE @Code NVARCHAR(50);set @Code= @strcCode;
WHILE EXISTS(SELECT *  FROM '+@cTableName+' WHERE @cCodeName=@Code)
BEGIN
SELECT @MaxNumber=isnull(@MaxNumber,0)+1;
SELECT @Code =  '+CHAR(39)+ISNULL(@cSeed,'')+CHAR(39)+'+ right((REPLICATE(''0'',
@GlideLen) + cast(@MaxNumber AS VARCHAR(10))),@GlideLen);		
SELECT @ix = @ix + 1;					
END
;		
SELECT @strcCode=@Code;
'
--打印SQL并且执行
PRINT @SQL;     
EXECUTE sys.sp_executesql @SQL,N'@strcCode NVARCHAR(50) OUTPUT,
@MaxNumber BIGINT OUTPUT,@ix INT OUTPUT,@GlideLen int,@cCodeName NVARCHAR(20)',
@strcCode OUTPUT,@MaxNumber OUTPUT,@ix OUTPUT,@GlideLen,@cCodeName;
--返回下一个单据号			
SELECT @cCode= @strcCode;

参考:https://www.cnblogs.com/superfeeling/p/9635526.html

posted @ 2026-08-30 17:38  清哥的码农生活  阅读(2)  评论(0)    收藏  举报