How To Use Dynamic Sql in Sql Server ?
How To Use Dynamic Sql in Sql Server ?
¶¯Ì¬SQL ÔÚsql server ProcedureÖеÄÓ¦ÓÃ
Create PROCEDURE [dbo].[Proc_Get_Serial_No]
(
@Table_Name varchar(20),
@No_File varchar(20)
)
AS
Declare @Serial_No int
Begin
Declare @Sql nvarchar(max)
Set @Sql ='select @Serial_No= isnull(Max('+@No_File+'),0)+1 from '+@Table_Name+''
Execute sp_executesql @Sql,
N'@Serial_No int output',
@Serial_No output
print @Serial_No
End
---Result---
Serial_No
-----------
1
×¢Ò⣺¶ÔÓÚIntput µÄ²ÎÊýÐèÒªÓà '+@parameter+'
¶ÔÓÚoutput µÄ²ÎÊýÔòÐèÒªÔÚ Ö´Ðж¯Ì¬sql µÄʱ¼äÒÔ¶¨Òå²ÎÊýµÄÐÎʽ˵Ã÷¡£
ÈçÉÏÃæµÄ£º N'@Serial_No int output'£¬È»ºó²ÅÊDzÎÊýÊä³ö,Èç @Serial_No output
--If Your want to output more the one value, your can reference the sql section as below¡£
Note: The Output Parameter Define.
Create PROCEDURE [dbo].[Proc_Get_Serial_No]
(
@Table_Name varchar(20),
@No_File varchar(20)
&n
Ïà¹ØÎĵµ£º
´Ó2000¿ªÊ¼¾ÍÊÇMS SQL¼ÒµÄÖÒʵÓû§ÁË£¬2000µÄʱºòÎÒÊÇ´ÓÒ»±¾2000±¦µä¿ªÊ¼ÈëÃŵ쬴Ó2000µ½2005¾ÀúÁ˺ܳ¤Ê±¼ä£¬ºÜ¶àµÄÓû§ÖÁ½ñ»¹ËÀËÀµÄÊØ×Å2000£¬Èç¹û²»Êǹ¤³ÌÒªÇ󣬹À¼ÆÎÒÒ²²»»áÖ÷¶¯»»µ½2005£¬È»¶øÑÛ¾¦Ò»Õ££¬2008ÓÖ³öÀ´ÁË£¬°§Ì¾£¬2005µÄ¹¦ÄÜÎÒ¶¼Ã»ÓÐÃþÍ¸ÄØ¡£
2008Óë2005µÄ¶Ô±È
1.Âý£¬Ê²Ã´¶¼Âý£¬´Ó»Ö¸´Êý¾Ý¿â£¬µ½µ¼ÈëÊý¾Ý ......
Ò»¡¢PL/SQL±à³Ì¹æ·¶Ö®´óСд
¾ÍÏñÔÚSQLÖÐÒ»Ñù£¬PL / SQLÖÐÊDz»Çø·Ö´óСдµÄ¡£ÆäÒ»°ã×¼ÔòÈçÏ£º
¹Ø¼ü×Ö(BEGIN, EXCEPTION, END, IF THEN ELSE,LOOP, END LOOP)¡¢Êý¾ÝÀàÐÍ(VARCHAR2, NUMBER)¡¢ÄÚ²¿º¯Êý(LEAST, SUBSTR)ºÍÓû§¶¨ÒåµÄ×Ó³ÌÐò(procedures, functions,packages)£¬Ê¹Óôóд¡£
±äÁ¿ÃûÒÔ¼°SQLÖеÄÁÐÃûºÍ±íÃû£¬Ê¹ÓÃÐ ......
Ê×ÏÈ´´½¨²âÊÔ±í¡¢Ìí¼ÓÊý¾Ý¡£
create table #t(a int,b int,c int,d int,e int)
insert into #t values(1,2,3,4,5)
insert into #t values(1,2,3,4,6)
insert into #t values(1,2,3,4,7)
insert into #t values(1,2,3 ......
ÔÚ´æ´¢¹ý³ÌÖÐʹÓÃÊÂÎñ£¬ÒÔÏÂΪģ°å£º
CREATE PROCEDURE testPro
AS
/**//* ------- ÊÂÎñ¿ªÊ¼---------- */
BEGIN TRANSACTION tran_test
/**//* -------- ±£´æÊÂÎñ----------*/
SAVE TRANSACTION tran_test
/**//* -------- Êý¾Ý²Ù×÷---------*/
INSERT [table1] ( [content] ) VALUES ( '43332' )
/**//*---- ......
Ò»¡¢°´Ö¸¶¨·ûºÅ·Ö¸î×Ö·û´®£¬·µ»Ø·Ö¸îºóµÄÔªËØ¸öÊý£¬·½·¨ºÜ¼òµ¥£¬¾ÍÊÇ¿´×Ö·û´®ÖдæÔÚ¶àÉÙ¸ö·Ö¸ô·ûºÅ£¬È»ºóÔÙ¼ÓÒ»£¬¾ÍÊÇÒªÇóµÄ½á¹û¡£
CREATE function Get_StrArrayLength
(
@str varchar(1024), --Òª·Ö¸îµÄ×Ö·û´®
@split varchar(10) --·Ö¸ô·ûºÅ
)
......