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
Ïà¹ØÎĵµ£º
ÔÚ Oracle 10g ÖÐ
¿ÉÒÔͨ¹ý http://localhost:5560/isqlplus ·ÃÎÊ isqlplus
ÔÚ isqlplus ÖÐ ¿ÉÒÔÖ´ÐÐ plsql
set serveroutput on size 100000 // ´ò¿ª ·þÎñÆ÷µÄÊä³ö on ºóÃæÊÇ »º´æµÄ´óС ·¶Î§ÊÇ (2000 ÖÁ 1000000)
begin
dbms_output.put_line('hel ......
´Ó2000¿ªÊ¼¾ÍÊÇMS SQL¼ÒµÄÖÒʵÓû§ÁË£¬2000µÄʱºòÎÒÊÇ´ÓÒ»±¾2000±¦µä¿ªÊ¼ÈëÃŵ쬴Ó2000µ½2005¾ÀúÁ˺ܳ¤Ê±¼ä£¬ºÜ¶àµÄÓû§ÖÁ½ñ»¹ËÀËÀµÄÊØ×Å2000£¬Èç¹û²»Êǹ¤³ÌÒªÇ󣬹À¼ÆÎÒÒ²²»»áÖ÷¶¯»»µ½2005£¬È»¶øÑÛ¾¦Ò»Õ££¬2008ÓÖ³öÀ´ÁË£¬°§Ì¾£¬2005µÄ¹¦ÄÜÎÒ¶¼Ã»ÓÐÃþÍ¸ÄØ¡£
2008Óë2005µÄ¶Ô±È
1.Âý£¬Ê²Ã´¶¼Âý£¬´Ó»Ö¸´Êý¾Ý¿â£¬µ½µ¼ÈëÊý¾Ý ......
1¡¢°´Ê±¼äÅÅÐò
select * from tbl_lms_loginhistory order by loginhistory_logintime desc
2¡¢
ÔÚÒ»¸öÊý¾Ý¿âÖÐÊÇÏÂÁеÄÑù×Ó
³µ´Î Éí·ÝÖ¤ºÅ
27 1
27 2
45 1
25 1
45 2
ÏÖÔÚÎÒÏë »ñµÃµÄÊÇ
³µ´Î ³Ë×ø´ÎÊý
25 1
27 3
45 2
ÇëÎÊ£¬ÎÒµÄSQLÓï¾ä¸ÃÔõôд£¿
select ³µ´ ......
ÔÚ´æ´¢¹ý³ÌÖÐʹÓÃÊÂÎñ£¬ÒÔÏÂΪģ°å£º
CREATE PROCEDURE testPro
AS
/**//* ------- ÊÂÎñ¿ªÊ¼---------- */
BEGIN TRANSACTION tran_test
/**//* -------- ±£´æÊÂÎñ----------*/
SAVE TRANSACTION tran_test
/**//* -------- Êý¾Ý²Ù×÷---------*/
INSERT [table1] ( [content] ) VALUES ( '43332' )
/**//*---- ......