Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hur erhålla kolumn egenskap i en SQL server tabell?

Postades av 2010-04-21 09:13:59 - Magnus Karlsson, i forum vb.net, Tråden har 9 Kommentarer och lästs av 1899 personer

Jag har en tabel i en MS SQL databas med några kolumner vars jag vill ta reda på hur lång textlängden är på. Hur gör man?


Svara

Sv: Hur erhålla kolumn egenskap i en SQL server tabell?

Postades av 2010-04-21 11:27:55 - Pelle Johansson

Hej Magnus,

Du kan använda en inbyggd lagrad procedur för att lista egenskaper per fält i varje tabell. Kommandot heter sp_help följt av ett tabellnamn.

Ex: sp_help TabellNamn

Du kan ocks använda en annan för att se innehållet i en sp:

Ex: sp_helptext spnamn


Exempel på sp_help TabellNamn

Column_name Type Computed Length Prec Scale Nullable TrimTrailingBlanks FixedLenNullInSource Collation
backup_set_id int no 4 10 0 no (n/a) (n/a) NULL
first_family_number tinyint no 1 3 0 yes (n/a) (n/a) NULL
first_media_number smallint no 2 5 0 yes (n/a) (n/a) NULL
filegroup_name nvarchar no 256 yes (n/a) (n/a) Finnish_Swedish_CI_AS
page_size int no 4 10 0 yes (n/a) (n/a) NULL
file_number numeric no 9 10 0 no (n/a) (n/a) NULL
backed_up_page_count numeric no 9 10 0 yes (n/a) (n/a) NULL
file_type char no 1 yes no yes Finnish_Swedish_CI_AS


Svara

Sv:Hur erhålla kolumn egenskap i en SQL server tabell?

Postades av 2010-04-21 12:44:50 - Magnus Karlsson


Hej Pelle!

Tack för tipset. Men har en följdfråga.
Hur kommer jag åt det i .net?

MVH
Magnus


Svara

Sv: Hur erhålla kolumn egenskap i en SQL server tabell?

Postades av 2010-04-21 15:33:57 - Magnus Karlsson

Tack Börje! Underbar info som jag hittat. Snickarde ihop en liten SP av det.

<code>
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_tabellinfo]
@tabell varchar(50)
AS
DECLARE @id int;
BEGIN
SET NOCOUNT ON;
SET @id = (select id from sysobjects where xtype = 'U' and name = @tabell);
select name, length, type from syscolumns where id = @id
END

</code>

Frågan kanske är hur gångbart ovan sätt är. Jag kör SQL server 2005. Kommer det att fungera i 2008 eller mySQL om jag byter databas?


Svara

Sv:Hur erhålla kolumn egenskap i en SQL server tabell?

Postades av 2010-04-21 19:33:07 - Andreas Hillqvist

Kika på information schema, vilket är ansi SQL standard:
http://en.wikipedia.org/wiki/Information_schema

SELECT CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Din tabell' AND COLUMN_NAME = 'Din kolumn'


Svara

Sv: Hur erhålla kolumn egenskap i en SQL server tabell?

Postades av 2010-04-22 07:53:17 - Magnus Karlsson

Hej Andreas!

Jag testade

SELECT CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Min tabell' AND COLUMN_NAME = 'Min kolumn'


Men det kom inte upp något svar.


Svara

Sv:Hur erhålla kolumn egenskap i en SQL server tabell?

Postades av 2010-04-22 13:02:05 - Pelle Johansson

Magnus,

Ett tips:
Döp aldrig en sp med inledande "sp_" - det är ett känt prestandasänkande sätt. SQL tror att det är en inbyggd procedur och går först mot masterdatabasen för att köra sp:n, sen till den databas du är kopplad mot. Så, sluta döp era sp:ar med sp_ ...


Svara

Sv:Hur erhålla kolumn egenskap i en SQL server tabell?

Postades av 2010-04-22 17:03:03 - Håkan Borneland

Testa igen.
Du får bara träff på CHARACTER_MAXIMUM_LENGTH om datatypen är av char/varchar

<code>
SELECT
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Din tabell' AND COLUMN_NAME = N'Din kolumn';
</code>


Svara

Sv: Hur erhålla kolumn egenskap i en SQL server tabell?

Postades av 2010-04-23 10:22:51 - Magnus Karlsson


"N":et före 'Din tabell, vad gör den?

Om jag "hårdkodar" N'kunder' så funkar det. Men inte N@tabell...


Svara

Sv:Hur erhålla kolumn egenskap i en SQL server tabell?

Postades av 2010-04-23 15:49:47 - Håkan Borneland

Den betyder att textsträngen tolkas som nvarchar (unicode), eftersom det är datatypen på kolumnen.
Kan inte sättas före en variabel.
Deklarera variabeln/inparametern som nvarchar istället.

<code>
DECLARE @table nvarchar(125);
DECLARE @column nvarchar(125);

SET @table = N'Din tabell';
SET @column = N'Din kolumn';

SELECT
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @table AND COLUMN_NAME = @column;
</code>


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 609
27 958
271 741
593
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies