drop table #Tmp --删除临时表#Tmp
create table #Tmp --创建临时表#Tmp
(
ID int IDENTITY (1,1) not null, --创建列ID,并且每次新增一条记录就会加1
WokNo varchar(50),
primary key (ID) --定义ID为临时表#Tmp的主键
);
Select * from #Tmp --查询临时表的数据
truncate table #Tmp --清空临时表的所有数据和约束
相关例子:
Declare @Wokno Varchar(500) --用来记录职工号
Declare @Str NVarchar(4000) --用来存放查询语句
Declare @Count int --求出总记录数
Declare @i int
Set @i = 0
Select @Count = Count(Distinct(Wokno)) from #Tmp
While @i < @Count
Begin
Set @Str = 'Select top 1 @Wokno = WokNo from #Tmp Where id not in (Select top ' + Str(@i) + 'id from #Tmp)'
Exec Sp_ExecuteSql @Str,N'@WokNo Varchar(500) OutPut',@WokNo Output
Select @WokNo,@i --一行一行把职工号显示出来
Set @i = @i + 1
End
临时表
可以创建本地和全局临时表。本地临时表仅在当前会话中可见;全局临时表在所有会话中都可见。
本地临时表的名称前面有一个编号符 (#table_name),而全局临时表的名称前面有两个编号符 (##table_name)。
SQL 语句使用 CREATE TABLE 语句中为 table_name 指定的名称引用临时表:
CREATE TABLE #MyTempTable (cola INT PRIMARY KEY)
INSERT INTO #MyTempTable VALUES (1)
如
果本地临时表由存储过程创建或由多个用户同时执行的应用程序创建,则 SQL Server 必须能够区分由不同用户创建的表。为此,SQL
Server 在内部为每个本地临时表的表名追加一个数字后缀。存储在 tempdb 数据库的 sysobjects 表中的临时表,其全名由
CREATE TABLE 语句中指定的表名和系统生成的数字后缀组成。为了允许追加后缀,为本地临时表指定的表名 table_name 不能超过
116 个字符。
除非使用 DROP TABLE 语句显式除去临时表,否则临时表将在退出其作用域时由系统自动除去:
当存储过程完成时,将自动除去在存储过程中创建的本地临时表。由创建表的存储过程执行的所有嵌套存储过程都可以引用此表。但调用创建此表的存储过程的进程无法引用此表。
所有其它本地临时表在当前会话结束时自动除去。
全局临时表在创建此表的会话结束且其它任务停止对其引用时自动除去。任务与表之间的关联只在单个 Transact-SQL 语句的生存周期内保持。换言之,当创建全局临时表的会话结束时,最后一条引用此表的 Transact-SQL 语句完成后,将自动除去此表。
在
存储过程或触发器中创建的本地临时表与在调用存储过程或触发器之前创建的同名临时表不同。如果查询引用临时表,而同时有两个同名的临时表,则不定义针对哪
个表解析该查询。嵌套存储过程同样可以创建与调用它的存储过程所创建的临时表同名的临时表。嵌套存储过程中对表名的所有引用都被解释为是针对该嵌套过程所
创建的表,例如:
CREATE PROCEDURE Test2
AS
CREATE TABLE #t(x INT PRIMARY KEY)
INSERT INTO #t VALUES (2)
SELECT Test2Col = x FROM #t
GO
CREATE PROCEDURE Test1
AS
CREATE TABLE #t(x INT PRIMARY KEY)
INSERT INTO #t VALUES (1)
SELECT Test1Col = x FROM #t
EXEC Test2
GO
CREATE TABLE #t(x INT PRIMARY KEY)
INSERT INTO #t VALUES (99)
GO
EXEC Test1
GO
下面是结果集:
(1 row(s) affected)
Test1Col
-----------
1
(1 row(s) affected)
Test2Col
-----------
2
当
创建本地或全局临时表时,CREATE TABLE 语法支持除 FOREIGN KEY 约束以外的其它所有约束定义。如果在临时表中指定
FOREIGN KEY 约束,该语句将返回警告信息,指出此约束已被忽略,表仍会创建,但不具有 FOREIGN KEY 约束。在 FOREIGN
KEY 约束中不能引用临时表。
考虑使用表变量而不使用临时表。当需要在临时表上显式地创建索引时,或多个存储过程或函数需要使用表值时,临时表很有用。通常,表变量提供更有效的查询处理。
原文
c#检查字符串是否为数字
该日志由
samool 发表于 2007-12-28 10:01 AM
正则表达
string regex = @^\d+$;
自己写个方法吧:这是我写的.
private bool isNumber(string s)
{
int Flag = 0;
char[]str = s.ToCharArray();
for(int i = 0;i < str.Length ;i++)
{
if (Char.IsNumber(str[i]))
{
Flag++;
}
else
{
Flag = -1;
break;
}
}
if ( Flag > 0 )
{
return true;
}
else
{
return false;
}
}
测试
private void Button1_Click(object sender, System.EventArgs e)
{
if (isNumber(TextBox1.Text.Trim()))
{
TextBox2.Text = 是数字;
}
else
{
TextBox2.Text = 不是数字;
}
}
try
{
double.Parse(this.TextBox1.Text);
Response.Write(是数字);
}
catch
{
Response.Write(不是数字);
}
或者用正则表达式也可以:
using System.Text.RegularExpressions;
------------------------
Regex r=new Regex(@^\d+(\.)?\d*$);
if(r.IsMatch(this.TextBox1.Text))
{
this.Response.Write(是数字);
}
else
{
this.Response.Write(不是数字);
}
public static bool StrIsInt(string Str)
{
try
{
Int32.Parse(Str);
return true;
}
catch
{
bool flag = false;
return flag;
}
}
应该使用正则表达式:
string pattern = @^\d+(\.\d)?$;
if(Text1.Text.Trim()!=)
{
if(!Regex.IsMatch(sign_money.Text.Trim(),pattern))
{
Text1不是数字;
}
else
{
Text1是数字;
}
}
原文链接
1.如果要在不同语言间使用,字符串参数都用pchar类型,而不要用string+sharemem的方式。
2.在DLL内的函数与在调用程序申明处都要加上stdcall关键字(对DELPHI而言)。
3.如果在DLL内的函数要对传入的字符串参数进行修改,注意在调用程序里为变量申请好内存(用GetMem函数)。(好像不能更改传入的变量的值,正在研究中)
4.在DLL内可以直接操作字符串,或者把传入的PChar赋值给一个String然后后再返回成一个PChar。
1、新建宏:
在代码窗口输入:Selection.Text = Format(Selection.Text, "#,##0.00")
保存宏。
2、为该宏设置快捷键:
工具->自定义->命令-宏->选定千分位宏->点击右下方键盘->类别中选定宏-从右边选定千分位宏设置。
3、使用:
选定数字->按下快捷键。
需要设置的地方选中后按快捷键,属于半自动。
遇到快速启动栏里显示桌面丢失的时候,可以直接在C:\Document and Setting\Application Data\Microsoft\Internet Explorer\Quick Launch目录里,新建一个名为“显示桌面.scf”的文件,文件内容为:
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop
在XP系统里,在语言栏的属性里,更改了中文与非中文的切换快捷键的话,会发现改不成默认的Ctrl+Space了。因为没有这个选项,要嘛是Ctrl+Shift+Space,要嘛是Alt+Shift+Space。以前也遇到过,只当是系统BUG没有去管它。今天一老师电脑中毒,cftmon.exe程序被病毒干掉啊,成了0kb的文件。把系统盘里的i386文件夹里的同名文件拷到system32目录下,语言栏回来了,可以这个切换键被成了Ctrl+Shift+Space。于是搜索网上,终于发现了秘密。其实只要在快捷键那里取消“启动按钮顺序”项的前面的勾,确定,确定就可以了。不用再重设,虽然你当时看到那个快捷键成了(无),但你下次再点开键设置的时候就看到系统自动更改成Ctrl+Space了。
方法如下:
一.在SQL服务器的安装盘中找到MSDE这个目录,并且点击setup.exe安装它,过程简单直接下一步就OK了。
二. 重启系统WINDOWSXP,这下就可以看到SQL服务的图标出现了。
三. 再拿出SQL服务器版的安装光盘,直接安装客户端工具(这个不要多说吧?最简单的方法就是直接点击光盘根目录下的autorun.exe)安装时不要选择MDSN的帮助文件
根据提示安装,自检过程中知道系统不是SERVER版,会提示只安装客户端工具。
四. 打开企业管理器,试用SA用户连一下看看,是不是发现SA用户登陆失败?因为你还没有与信任SQL SERVER连接相关联。还好这个只要对系统注册表稍加修改就可以啦:
在运行中输入regedit打开注册表编辑器,找到[HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER],这个项里面
有一个键值LoginMode,默认下,值是1,现在将值改为2,重启电脑。
五. 再打开企业管理,再连接试试,是不是OK了!