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;

浙公网安备 33010602011771号