fyqt.net
当前位置:首页 >> sql存储过程动态拼接 >>

sql存储过程动态拼接

declare @s varchar(32) ,@dd varchar(32) set @s ='select * from ' set @dd =' table_cs' exec (@s + @dd)

create proc up_user @userid char(20), @username char(20)as BEGIN select * from tb_user WHERE userid = CASE WHEN @userid '' THEN @userid ELSE userid ENDAND username = LIKE '%' + CASE WHEN @username '' THEN @username ELSE usernam...

能在详细点吗,没看明白,拼接过程中可以用mysql以外的函数,拼接成后 只能用mysql函数了

基本可以认为是无差别 就一个拼sql语句的话,字存储过程中无非就是字符串拼接,根本不占什么系统资源 这个你放心大胆的使用吧 而sql语句的效率主要是你自己sql写的好不好或者用没用上索引之类的,跟这个拼sql语句关系不大

参考如下: 游标处理 BEGIN DECLARE @Sql varchar(200); DECLARE @name varchar(10); SET @Sql='DECLARE cur CURSOR for select [name] from test_dysql'; EXEC(@Sql). OPEN cur; FETCH next FROM cur INTO @name; WHILE @@FETCH_STATUS=0 BEGIN...

建议你用 instr函数,v_sql条件改为 where instr(p_jbm,t.jbm)>0试试吧。

你先调试一下,少了个@和begin、end 另外,拼接变量不能在字符串内啊,这样没用 create procedure [dbo].[baobiao1] @date1 datetime, @date2 datetime as set nocount on begin Set XACT_ABORT ON; Begin Tran Declare @SQL1 varchar(8000) Dec...

SQL code --在存储过程里面完成呗 --例: create or replace procedure yyp_cwdh(table_name varchar) is str_sql varchar2(400):=''; begin str_sql:='select * from '||table_name||' where 1=1'; execute immediate st……

既然是生成新表,你可以定义一个参加拼凑sql语句,游标抓出proName的值,作为表名,sql_str = 'create table '+表名+'(colname varchar(100))',然后游标抓出txtLog的值,作为表里的值,这时候sql_str+='insert into 表名 values('+txtLog的值+')'

记得加分。 肯定不可以。存储过程才好。 SET QUOTED_IDENTIFIER OFF SET ANSI_NULLS ON GO if exists (select * from sysobjects where id = object_id('dbo.XXXX) and sysstat & 0xf = 4) drop procedure dbo.XXXX GO CREATE PROC XXXX ( @LOGI...

网站首页 | 网站地图
All rights reserved Powered by www.fyqt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com