地址:http://topic.csdn.net/u/20090824/16/e787a0ee-a91b-48a7-8e9b-7d224b824ebe.html?255290816-------------------------------------------
--  Author : liangCK 小梁
--  Comment: 小梁 爱 兰儿
--  Date   : 2009-08-24 16:10:26
-------------------------------------------
 
--> 生成测试数据: @T
DECLARE @T TABLE (x INT,y INT)
INSERT INTO @T
SELECT 1,2 UNION ALL
SELECT 1,3 UNION ALL
SELECT 1,1 UNION ALL
SELECT 2,3 UNION ALL
SELECT 2,2 UNION ALL
SELECT 1,4--SQL查询如下:DECLARE @tmp TABLE(x int,y int);DELETE @T OUTPUT deleted.x,deleted.y INTO @tmp WHERE x = 1 AND y = 2;UPDATE A SET
    y = A.y - 1
FROM @T AS A
    JOIN @tmp AS B
ON A.x = B.x AND A.y > B.y;
SELECT * FROM @T;/*
x           y
----------- -----------
1           2
1           1
2           3
2           2
1           3(5 row(s) affected)
*/
1 这里面用了表变量,.net里面怎么用呀?
2 含有output的语句怎么理解?

解决方案 »

  1.   

    一样,
    stringbuilder sqltext="";
    sqltext.append("\nDECLARE @T TABLE (x INT,y INT)");
    sqltext.append("\nINSERT INTO @T);
    sqltext.append("\nSELECT 1,2 UNION ALL);
    sqltext.append("\nSELECT 1,3 UNION ALL");
    .....
    sqlconnection conn=new sqlconnection ();
    conn.connectionstring=sqltext.tostring();
    ....
      

  2.   

    stringbuilder sqltext=new stringbuilder();
      

  3.   


    这种方法没用过,有用过的吗?
    可以直接用sql的方式实现传入传出参数????
    高人给指导一下
      

  4.   

    str+="\n DECLARE @tmp TABLE(x int,y int)";str+="\n DELETE @T OUTPUT deleted.x,deleted.y INTO @tmp WHERE x = 1 AND y = 2";str+="\n UPDATE A SET";
    str+="\n     y = A.y - 1";
    str+="\n FROM @T AS A";
    str+="\n     JOIN @tmp AS B";
    str+="\n ON A.x = B.x AND A.y > B.y";str+="\n SELECT * FROM @T";
    sqlcommand.commandText=str;
    ..................
    未區分大小寫