music 网络日志
发布于:2007-08-29 4:12

成批更改sql server数据库所有者的对象

因为一些网站是使用虚拟主机.用sql-server导数据上去的话.
数据库的用户默认是你登录的用户,不是dbo,有时就和本地产生不一致.

--功能说明:成批更改数据库所有者的对象
--作者:不详
--用法:exec ChangeObjectOwner 'nmkspro','dbo'
--即可将所有nmkspro所有者的对象改为dbo所有
--运行成功后将提示:"注意: 更改对象名的任一部分都可能破坏脚本和存储过程。"
CREATE PROCEDURE dbo.ChangeObjectOwner
@OldOwner as NVARCHAR(128),--参数原所有者
@NewOwner as NVARCHAR(128)--参数新所有者
AS

DECLARE @Name   as NVARCHAR(128)
DECLARE @Owner as NVARCHAR(128)
DECLARE @OwnerName as NVARCHAR(128)

DECLARE curObject CURSOR FOR
select 'Name'   = name,
'Owner'   = user_name(uid)
from sysobjects
where user_name(uid)=@OldOwner
order by name

OPEN curObject
FETCH NEXT FROM curObject INTO @Name, @Owner
WHILE(@@FETCH_STATUS=0)
BEGIN  
if @Owner=@OldOwner
begin
set @OwnerName = @OldOwner + '.' + rtrim(@Name)
exec sp_changeobjectowner @OwnerName, @NewOwner
end

FETCH NEXT FROM curObject INTO @Name, @Owner
END

close curObject
deallocate curObject
GO


批量修改:
EXEC sp_MSforeachtable 'exec sp_changeobjectowner ''?'',''dbo'' '
单个修改:
exec sp_changeobjectowner '要改的表名','dbo'


方法一:直接点击该表-》设计-》属性-》更改上面的所有者。该方法针对于表少的情况下。
方法二:利用脚本直接执行,用系统帐号或者超户登陆到该数据库,然后执行下面语句:
sp_configure 'allow updates','1'
go
reconfigure with override
go
update sysobjects set uid=1 where uid<>1 --根据条件可以任意修改,在多用户之间切换。
go
sp_configure 'allow updates','0'
go
reconfigure with override

 

=========================================================================
修改SQL中存储过程的所有者

CREATE   PROCEDURE   ChangeProcOwner  
  @OldOwner as   NVARCHAR(128),--参数原所有者  
  @NewOwner as   NVARCHAR(128)--参数新所有者  
  AS  
   
  DECLARE   @Name   as   NVARCHAR(128)    
  DECLARE   @Owner as   NVARCHAR(128)  
  DECLARE   @OwnerName as   NVARCHAR(128)  
   
  DECLARE   curObject   CURSOR   FOR    
  select 'Name' =   name,  
  'Owner' =   user_name(uid)  
  from   sysobjects  
  where   user_name(uid)=@OldOwner   and   xtype='p'  
  order   by   name  
   
  OPEN     curObject  
  FETCH   NEXT   FROM   curObject   INTO   @Name,   @Owner  
  WHILE(@@FETCH_STATUS=0)  
  BEGIN          
  if   @Owner=@OldOwner    
  begin  
  set   @OwnerName   =   @OldOwner   +   '.'   +   rtrim(@Name)  
  exec   sp_changeobjectowner   @OwnerName,   @NewOwner  
  end  
   
  FETCH   NEXT   FROM   curObject   INTO   @Name,   @Owner  
  END  
   
  close   curObject  
  deallocate   curObject  
  GO

exec   ChangeProcOwner   原所有者,'dbo'

【阅读 3905】 ┆ 【评论 0】


发布于:2007-06-08 7:48

1.绑定时格式化日期方法:
<ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " >
<ITEMSTYLE WIDTH= "18% " > </ITEMSTYLE >
</ASP:BOUNDCOLUMN >

2.数据控件如DataGrid/DataList等的件格式化日期方法:
e.Item.Cell[0].Text = Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString();

3.用String类转换日期显示格式:
String.Format( "yyyy-MM-dd ",yourDateTime);

4.用Convert方法转换日期显示格式:
Convert.ToDateTime("2005-8-23").ToString

("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //支持繁体数据库

5.直接用ToString方法转换日期显示格式:
DateTime.Now.ToString("yyyyMMddhhmmss");
DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")

6.只显示年月
DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}")

7.显示时间所有部分,包括:年月日时分秒
<asp:BoundColumn DataField="收款时间" HeaderText="收款时间"
DataFormatString="{0:yyyy-MM-dd HH24:mm:ss}">
</asp:BoundColumn>

【阅读 6783】 ┆ 【评论 2】


发布于:2007-05-25 12:09

【阅读 4344】 ┆ 【评论 0】


发布于:2007-01-26 10:13

效果图:

javascript全选代码,放在aspx

   <script language="javascript">
function public_GetParentByTagName(element, tagName)
{
    var parent = element.parentNode;
    var upperTagName = tagName.toUpperCase();
    //如果这个元素还不是想要的tag就继续上溯
    while (parent && (parent.tagName.toUpperCase() != upperTagName))
    {
        parent = parent.parentNode ? parent.parentNode : parent.parentElement;
    }
    return parent;
}
//设置节点的父节点Cheched——该节点可访问,则他的父节点也必能访问
function setParentChecked(objNode)
{
        var objParentDiv = public_GetParentByTagName(objNode,"div");
        if(objParentDiv==null || objParentDiv == "undefined")
        {
            return;
        }
        var objID = objParentDiv.getAttribute("ID");
            objID = objID.substring(0,objID.indexOf("Nodes"));
            objID = objID+"CheckBox";
        var objParentCheckBox = document.getElementById(objID);
            if(objParentCheckBox==null || objParentCheckBox == "undefined")
        {
            return;
    }
    if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
    return;
    objParentCheckBox.checked = true;
    setParentChecked(objParentCheckBox);
}
//设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问
function setChildUnChecked(divID)
{
    var objchild = divID.children;
    var count = objchild.length;
        for(var i=0;i<objchild.length;i++)
        {
            var tempObj = objchild[i];
            if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
        {
            tempObj.checked = false;
        }
            setChildUnChecked(tempObj);
        }
}
//设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问
function setChildChecked(divID)
{
    var objchild = divID.children;
    var count = objchild.length;
for(var i=0;i<objchild.length;i++)
{
    var tempObj = objchild[i];
    if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
    {
    tempObj.checked = true;
    }
    setChildChecked(tempObj);
    }
}
//触发事件
function CheckEvent()
{
    var objNode = event.srcElement;
    if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
    return;
    if(objNode.checked==true)
    {
        setParentChecked(objNode);
        var objID = objNode.getAttribute("ID");
        var objID = objID.substring(0,objID.indexOf("CheckBox"));
        var objParentDiv = document.getElementById(objID+"Nodes");
        if(objParentDiv==null || objParentDiv == "undefined")
            {
                return;
            }
        setChildChecked(objParentDiv);
        }
        else
        {
            var objID = objNode.getAttribute("ID");
            var objID = objID.substring(0,objID.indexOf("CheckBox"));
            var objParentDiv = document.getElementById(objID+"Nodes");
            if(objParentDiv==null || objParentDiv == "undefined")
        {
            return;
        }
            setChildUnChecked(objParentDiv);
    }
}
    </script>

cs代码如下:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class rc_Dict : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.TreeView1.Attributes.Add("onclick", "CheckEvent()");
    }
    protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
    {
        if (e.Node.ChildNodes.Count == 0)
        {
            switch (e.Node.Depth)
            {
                case 0:
                    PopulateXmdept(e.Node);
                    break;
                case 1:
                    PopulateImuser(e.Node);
                    e.Node.Collapse();
                    break;
            }
        }
    }
    //获取部门组下的用户
    void PopulateImuser(TreeNode node)
    {
        SqlCommand sqlQuery = new SqlCommand();
        sqlQuery.CommandText = "Select USERTRUENAME,USERID From IMUSER " +
            " Where USERDEPT = @PTID";
        sqlQuery.Parameters.Add("@PTID", SqlDbType.VarChar).Value = node.Value;
        DataSet ResultSet = RunQuery(sqlQuery);
        if (ResultSet.Tables.Count > 0)
        {
            foreach (DataRow row in ResultSet.Tables[0].Rows)
            {

                TreeNode NewNode = new TreeNode();
                NewNode.Text = row["USERTRUENAME"].ToString();
                NewNode.Value = row["USERID"].ToString();
                NewNode.PopulateOnDemand = false;
                NewNode.SelectAction = TreeNodeSelectAction.None;
                node.ChildNodes.Add(NewNode);
            }
        }
    }
    //获取系统组
    void PopulateXmdept(TreeNode node)
    {
        SqlCommand sqlQuery = new SqlCommand(
            "Select PtName, PtID From XMDEPT Order by PtName");
        DataSet resultSet;
        resultSet = RunQuery(sqlQuery);
        if (resultSet.Tables.Count > 0)
        {
            foreach (DataRow row in resultSet.Tables[0].Rows)
            {
                TreeNode NewNode = new
                    TreeNode(row["PtName"].ToString(),
                    row["PtID"].ToString());
                NewNode.PopulateOnDemand = true;
                NewNode.SelectAction = TreeNodeSelectAction.Expand;
                node.ChildNodes.Add(NewNode);
            }
        }
    }
    private DataSet RunQuery(SqlCommand sqlQuery)
    {
        SqlConnection DBConnection = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["SqlClientString"]);
        SqlDataAdapter dbAdapter = new SqlDataAdapter();
        dbAdapter.SelectCommand = sqlQuery;
        sqlQuery.Connection = DBConnection;
        DataSet resultsDataSet = new DataSet();
        try
        {
            dbAdapter.Fill(resultsDataSet);
        }
        catch
        {
            Response.Write("Unable to connect to SQL Server.");
        }
        return resultsDataSet;
    }
    protected void TreeView1_Disposed(object sender, EventArgs e)
    {
        Response.Write("<script language='javascript'> alert('测试选择成功TreeView1_Disposed!');</script>");
    }
    protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
    {
        if (TreeView1.CheckedNodes.Count > 0)
        {
            //选择后激发Checked
            foreach (TreeNode node in TreeView1.CheckedNodes)
            {
                //Response.Write(node.Value + "<br>");
            }
        }
        else
        {
            //Response.Write("No items selected.");
        }
    }
    protected void ib_submit_Click(object sender, ImageClickEventArgs e)
    {
        string sWorkName = null;

        if (TreeView1.CheckedNodes.Count > 0)
        {
            // Clear the message label.
            //Response.Write("You selected: <br><br>");
            // Iterate through the CheckedNodes collection and display
            // the selected nodes.
            //选择后激发Checked
            foreach (TreeNode node in TreeView1.CheckedNodes)
            {
                if (node.Depth == 2)
                {
                    this.tb_Select.Text += node.Text + ";";
                }
            }
            Server.Transfer("rc_add.aspx", true);
        }
        else
        {
            Response.Write("<script language='javascript'> alert('没有选择人员!');</script>");
            this.tb_Select.Text = null;
        }

    }
}

【阅读 8051】 ┆ 【评论 3】


发布于:2006-08-28 4:05

主料:鲜鸡一只(一定要嫩一些,活的现杀更好)、土豆四个(建议多放些,根据俺的经验,土豆是大盘鸡这道菜的精华,大家都会抢的,还是多放几个的好,呵呵)、小白蘑菇7~8个吧,口感很嫩的哦,皮带面(可以自己和面做,也可以去市场买,不过还得自己加工一下)

  辅料:青辣椒、红辣椒各一个(配色用的,不必很大,要嫩的)、葱姜蒜若干、花椒一把、八角、桂皮适量,朝天椒一把(辣味就靠它了,呵呵)

  足够大的锅一口、大盘子一个!俺每次都做满满的一大锅啊

  做法:

  第一步,把鸡切寸方块,别太小了,放在盆里,用生抽、盐、料酒入味15分钟,配菜洗切干净

  第二步,多放点儿油,下花椒,把花椒炸透。

  第三步,倒入鸡块,葱姜蒜,朝天椒。翻炒几分钟,倒酱油和水,水一定要没过鸡块。  

  第四步,加砂糖,盐,料酒

  第五步,加入蘑菇,开始焖15分钟。(因鸡的老嫩程度各异)

  第六步,倒入土豆,继续小火煮到土豆熟为止。

  第七步,倒入青辣椒红辣椒。起上色作用。

  第八步,略微翻炒后,可以出锅了!装盘吧

  大盘鸡独门秘笈:

  1:酱油不能用老抽,颜色太重要了不好看,要用生抽,

  2:鸡块腌好后,可以先用糖上色,这样出来的鸡块红红的很好看,不过俺嫌麻烦,通常是跳过了这道工序了,嘿嘿

  3:料酒要多加!味精不用加

  4:皮带面如果是自己做的话,面要软一些,用保鲜膜包好醒20分钟,这样做出来的面条最劲道!醒好之后,擀面的时候最好让男士动手,因为很费力气的!要擀得又宽又薄才好吃哦。
http://www.xici.net/b610245/d34770266.htm

【阅读 9506】 ┆ 【评论 1】


个人信息
我从草原来,带着奶茶来
i-favourite 相册
i-favourite 评论
回复: C# DateTime日..
aaa 2010-07-18 11:41

回复: C# DateTime日..
very good! helpful
allen 2008-12-11 10:13

回复: 关于2.0中TreeVi..
可否把数据绑定部分贴出来
.net 2008-05-29 4:49

Reply: 关于2.0中Tre..
能不能把这两个页的全部代码贴出来?
ltx 2008-04-14 9:45

回复: 关于2.0中TreeVi..
行不行啊
billjoe 2008-04-09 5:09

回复: 添加一段代码可以批量替换..
ruolin 2008-01-17 12:13

回复: 让人回味的老歌
sdfsf 2007-07-28 8:29

回复: 新疆大盘鸡做法
这个文章看第二次了。。 那个叫拉条 。
2006-08-28 4:28

回复: 让人回味的老歌
很向往去草原
压压 2006-08-26 7:34

回复: 让人回味的老歌
有一年学校组织K歌大赛,大家都说我唱王菲的歌唱的很好,可我偏偏上去唱《美丽的草原我的家》 我说唱这首歌的时候很想哭想家。 嘿嘿 我的家也在草原上,不过不是内蒙古。
一滴 2006-08-12 4:37
music 音乐
显示播放列表
i-favourite 更新的共享空间
盒墩数联的空间
姓名:*** 职业:**  年龄:** ....

astushi712的空间
姓名:***职业:** 年龄:**位置:中国,** ....

123456的空间
姓名:*** 职业:**  年龄:** ....

世俗的心
姓名:*** 职业:**  年龄:** ....

安东逸的空间
姓名:***职业:** 年龄:**位置:中国,** ....

西红柿的空间
姓名:***职业:** 年龄:**位置:中国,** ....

开心到则~~
主不在呼!

sldi的空间
姓名:***职业:** 年龄:**位置:中国,** ....

夏季末承诺的空间
姓名:*** 职业:**  年龄:** ....

新生の白之牙
孤的空間簡短說明