sqlserver 中 沒有 || 和 的吧。
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站建設(shè)、網(wǎng)站制作與策劃設(shè)計(jì),新區(qū)網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:新區(qū)等地區(qū)。新區(qū)做網(wǎng)站價(jià)格咨詢:13518219792
但是java,C等編程語言中有他,||表示 或, 表示 與。
對(duì)應(yīng)sqlserver sql語句中的 or 和 and。
or 表示有一種情況真,表達(dá)式就為真,比如if(1==2||2==2){...},這時(shí)候if表達(dá)式就為真。if(1==2||1==3){...}這時(shí)候if表達(dá)式直為假。
and表示兩種情況都為真,表達(dá)式為真,比如if(1==12==2){},這時(shí)候if表達(dá)式為真,其他情況為假。
SQL Server并不包含這個(gè)功能,只能靠第三方的代碼了。
用這個(gè)存儲(chǔ)過程可以實(shí)現(xiàn):
CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(1000)
declare @columndata varchar(1000)
declare @sql varchar(4000)
declare @xtype tinyint
declare @name sysname
declare @objectId int
declare @objectname sysname
declare @ident int
set nocount on
set @objectId=object_id(@tablename)
if @objectId is null -- 判斷對(duì)象是否存在
begin
print 'The object not exists'
return
end
set @objectname=rtrim(object_name(@objectId))
if @objectname is null or charindex(@objectname,@tablename)=0 --此判斷不嚴(yán)密
begin
print 'object not in current database'
return
end
if OBJECTPROPERTY(@objectId,'IsTable') 1 -- 判斷對(duì)象是否是table
begin
print 'The object is not table'
return
end
select @ident=status0x80 from syscolumns where id=@objectid and status0x80=0x80
if @ident is not null
print 'SET IDENTITY_INSERT '+@TableName+' ON'
declare syscolumns_cursor cursor
for select c.name,c.xtype from syscolumns c where c.id=@objectid order by c.colid
open syscolumns_cursor
set @column=''
set @columndata=''
fetch next from syscolumns_cursor into @name,@xtype
while @@fetch_status -1
begin
if @@fetch_status -2
begin
if @xtype not in(189,34,35,99,98) --timestamp不需處理,image,text,ntext,sql_variant 暫時(shí)不處理
begin
set @column=@column+case when len(@column)=0 then'' else ','end+@name
set @columndata=@columndata+case when len(@columndata)=0 then '' else ','','','
end
+case when @xtype in(167,175) then '''''''''+'+@name+'+''''''''' --varchar,char
when @xtype in(231,239) then '''N''''''+'+@name+'+''''''''' --nvarchar,nchar
when @xtype=61 then '''''''''+convert(char(23),'+@name+',121)+''''''''' --datetime
when @xtype=58 then '''''''''+convert(char(16),'+@name+',120)+''''''''' --smalldatetime
when @xtype=36 then '''''''''+convert(char(36),'+@name+')+''''''''' --uniqueidentifier
else @name end
end
end
fetch next from syscolumns_cursor into @name,@xtype
end
close syscolumns_cursor
deallocate syscolumns_cursor
set @sql='set nocount on select ''insert '+@tablename+'('+@column+') values(''as ''--'','+@columndata+','')'' from '+@tablename
print '--'+@sql
exec(@sql)
if @ident is not null
print 'SET IDENTITY_INSERT '+@TableName+' OFF'
GO
使用方法:
exec UspOutputData 你的表名
然后將運(yùn)行后的結(jié)果存成.sql,加上用SQL Server生成的數(shù)據(jù)庫腳本就可以了
SQL SERVER存儲(chǔ)過程
create procedure pr_s
(
@SyoRiModo int
)
as
if @SyoRiModo=1
begin
select * from A where a='1' and b = '2'
end
else
begin
select * from A where c= '3'
end
1、打開SqlServer數(shù)據(jù)庫,選中要備份的數(shù)據(jù)庫,【右鍵】選擇【任務(wù)】,點(diǎn)擊【備份】。
2、輸入【數(shù)據(jù)集】名稱,選擇備份路徑,點(diǎn)擊【確定】就完成了數(shù)據(jù)庫的備份。
3、【右鍵】選擇【任務(wù)】,點(diǎn)擊【還原】,選擇【數(shù)據(jù)庫】。
4、選擇之前備份的數(shù)據(jù)庫,點(diǎn)擊【確定】。
5、至此SqlServer備份還原的操作就已完成。
可用存儲(chǔ)過程,如查找?guī)熘兴斜硭凶侄?,包含“張三”的?shù)據(jù)
declare @cloumns varchar(40)
declare @tablename varchar(40)
declare @str varchar(40)
declare @counts int
declare @sql nvarchar(2000)
declare MyCursor Cursor For
Select a.name as Columns, b.name as TableName from syscolumns a,sysobjects b,systypes c
where a.id = b.id
and b.type = 'U'
and a.xtype=c.xtype
and c.name like '%char%'
set @str='張三'
Open MyCursor
Fetch next From MyCursor Into @cloumns,@tablename
While(@@Fetch_Status = 0)
Begin
set @sql='select @tmp_counts=count(*) from ' +@tablename+ ' where ' +@cloumns+' = ''' +@str+ ''''
execute sp_executesql @sql,N'@tmp_counts int out',@counts out
if @counts0
begin
print '表名為:'+@tablename+',字段名為'+@cloumns
end
Fetch next From MyCursor Into @cloumns,@tablename
End
Close MyCursor
Deallocate MyCursor